Ваш номер по журналу N.
Задание выполняется без черновика и калькулятора. Все вычисления приводятся в решении. Ответы каждого пункта - выделить
Пример:
алгебраически сложим десятичные числа
120 и -61 с использованием дополнительного кода.
120(10) =(0)1111000(2) знаковый разряд (0)
в начале числа для положительного числа.
-61(10) = (1)111101(2) знаковый разряд (1)
в начале числа для отрицательного числа.
Выравниваем количество значащих цифр, добавлением нулей после знакового разряда.
(1)111101=(1)0111101
Получаем дополнительный код отрицательного числа инвертированием всех разрядов кроме
знакового и прибавлением 1 к млачшему разряду.
(1)1000011
Складываем положительное число с дополнительным кодом отрицательного по правилам
сложения двоичных чисел.
первое число | (0) | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
доп.код второго | (1) | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
результат | (0) | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
Единица переполнения, возникшая при суммировании в знаковом разряде,
отбрасывается.
Если бы при суммировании у результата в знаковом разряде была бы 1, то
это был бы не сам результат, а его дополнительный код, и для получения
результата его надо было бы перевести в прямой код, инвертировав
все его разряды, кроме знакового и прибавив 1 к млачшему разряду.
Результат (0)0111011(2) = +59
Пример:
алгебраически сложим десятичные числа -122 и +36 с использованием обратного кода.
-122(10) =(1)1111010(2) .
36(10) = (0)100100(2) .
Выравниваем количество значащих цифр, добавлением нулей после знакового разряда.
(0)100100=(0)0100100
Получаем обратный код отрицательного числа инвертированием всех разрядов кроме знакового.
(1)0000101
Складываем положительное число с обратным кодом отрицательного по правилам сложения
двоичных чисел.
обр. код первого числа | (1) | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
второе число | (0) | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
результат | (1) | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
Если бы возникла единица переполнения, при суммировании в знаковом разряде,
ее надо было бы прибавить к млачшему разряду числа.
У результата в знаковом разряде 1, значит - это дополнительный
код результата, и, для получения прямого кода результата,
надо инвертировать все разряды кроме знакового.
Результат (1)1010110(2) = -86