№213. 40 баллов , помогите с информатикой.

0 голосов
22 просмотров

№213. 40 баллов , помогите с информатикой.


image

Информатика (4.2k баллов) | 22 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Если число положительное, оно в дополнительном коде имеет такой же вид, как в прямом. Поэтому 35₁₀ = 100011₂ на 16-битной сетке будет записано как

0000 0000 0010 0011

Отрицательное десятичное число -78 в дополнительный код переводится в три шага. Сначала оно представляется в прямом двоичном коде, причем вместо знака минус самый левый разряд заносится единицей. -78₁₀ = -1001110₂ и на 16-битной сетке получаем запись

1000 0000 0100 1110

Второй шаг - инверсия бит. Единицы заменяются нулями, а нули - единицами. Знаковый разряд в этом безобразии не участвует. Так мы получаем обратный код отрицательного числа.

1111 1111 1011 0001

И последний шаг заключается к сложению полученного кода с единицей, что и дает дополнительной код. И опять же, знаковый бит мы не трогаем.

1111 1111 1011 0001 + 1 = 1111 1111 1011 0010

А теперь производим собственно сложение. В "столбик". Кстати, знаковые разряды тоже участвуют.

Получив результат, видим, что знаковый разряд единичный. Следовательно, это число отрицательное и в дополнительном коде. Будем теперь переводить его назад в прямой. И это тоже три шага.

Инвертируем биты, прибавляем +1 и переводим в десятичную систему счисления. Рисунок во вложении пояснит все прочее.



image
(678k баллов)