1) Для числа 18
18/2 = 9, остаток 0
9/2 = 4, остаток 1
4/2 = 2, остаток 0
2/2 = 1, остаток 0
1/2 = 0, остаток 1
Выписываем остатки в обратном порядке: 10010₂
Для перевода в восьмеричную систему разбиваем число справа налево по триадам:
10 010 = 22₈
Для перевода в шестнадцатиричную систему разбиваем число справа налево по тетрадам:
1 0010 - 12₁₆
-128 < 18 < 127, поэтому будем рассматривать его представление в одном байте со старшим знаковым разрядом.
Число положительное, поэтому его прямой, обратный и дополнительный коды совпадают: 00010010₂
Чтобы показать обратный и дополнительный коды, будем рассматривать число -18.
В обратном коде левый (знаковый) разряд заполняется единицей, а прочие разряды инвертируются, т.е. единица заменяется нулем, ноль - единицей.
Результат показан во вложении.
2) Для числа 10
10/2 = 5, остаток 0
5/2 = 2, остаток 1
2/2 = 1, остаток 0
1/2 = 0, остаток 1
Выписываем остатки в обратном порядке: 1010
Для перевода в восьмеричную систему разбиваем число справа налево по триадам:
1 010 = 12₈
Для перевода в шестнадцатиричную систему разбиваем число справа налево по тетрадам:
1010 - 10₁₆
Прочее - как для числа 18, показано во вложении.
3) Сложение в прямом коде. Обычное поразрядное сложение "в столбик", только помним, что 1+1=10, а не 2, т.е. пишем 0 и +1 идет в соседний разряд.
4) Вычитание. Здесь вычитаемое надо записать не в прямом коде, а в дополнительном. т.е. мы прибавляем не 10, а -10, что равносильно вычитанию.