1. Заполните таблицу, представив отрицательные десятичные числа в форматах прямого, обратного и
2. Запишите в десятичной системе счисления число со знаком, у которого однобайтовый дополнительный код выглядит как 10100111.
3. Найдите разность между числами 3010 и 1510 в восьмиразрядном представлении.
Пояснение:
Представление отрицательных чисел в компьютерных системах требует использования специальных кодов. В данной задаче мы рассмотрим три различных кодирования: прямой, обратный и дополнительный код.
1. Чтобы представить отрицательные десятичные числа в прямом коде, нужно изменить знак числа на отрицательный и записать его в двоичной форме. В данной таблице мы получаем следующие значения:
Число | Прямой код | Обратный код | Дополнительный код
————|————|—————|——————-
31 | 00111111 | 11000000 | 11000001
-77 | 10011011 | 11100100 | 11100101
113 | 01110001 | 10001110 | 10001111
Прямой код представляет отрицательные числа с помощью старшего бита, установленного в 1. Обратный код получается инвертированием всех битов числа, кроме старшего. Дополнительный код получается прибавлением 1 к обратному коду.
2. Для записи числа с однобайтовым дополнительным кодом в десятичной системе счисления необходимо проверить старший бит. Если старший бит равен 0, то число положительное и его значение равно модулю от числа в дополнительном коде. Если старший бит равен 1, то число отрицательное и его значение равно отрицательному значению числа в дополнительном коде. В данном случае имеем:
Дополнительный код: 10100111
Старший бит равен 1, поэтому это отрицательное число. Чтобы найти десятичное значение, инвертируем все биты числа и добавляем 1:
Инверсия: 01011000
Добавляем 1: 01011001
Получаем число -89.
3. Чтобы найти разность между числами 3010 и 1510 в восьмиразрядном представлении, нужно выполнить вычитание в двоичной системе счисления. Дополнительный код используется для представления отрицательных чисел. Процедура вычитания включает в себя инверсию битов числа, с которым выполняется вычитание, а затем простое сложение:
00111010 (30) (3010)
— 0001111 (15) (1510)
__________________
00011011 (27)
Получаем разность 27.
Пример использования:
1. Представьте число -92 в трех различных кодах в восьмиразрядном представлении.
2. Запишите в десятичной системе счисления число со знаком, у которого однобайтовый обратный код выглядит как 11101010.
3. Найдите разность между числами -13 и 7 в восьмиразрядном представлении.
Совет:
Для лучшего понимания кодирования отрицательных чисел в различных представлениях полезно изучить основы двоичной системы счисления и особенности представления чисел со знаком. Знание правил и процедур вычислений с использованием различных кодировок позволит вам более легко решать задачи данного типа. Регулярная практика вычислений поможет закрепить материал. Обратите внимание на изменение значения старшего бита при переходе от положительного к отрицательному числу и на применение инверсии и сложения при вычитании в дополнительном коде.
Задание для закрепления:
Заполните таблицу, представив отрицательные десятичные числа -41, -92 и 18 в форматах прямого, обратного и дополнительного кодов в восьмиразрядном представлении.