Восстановить исходное число в десятичной системе счисления: (9F70)h
По шестнадцатеричной форме внутреннего представления целого знакового числа восстановить исходное число в десятичной системе счисления:
(9F70)h
(9F70)16 → (1001111101110000)2
1 001111101110000
1 110000010001111
1 110000010010000
По последнему биту узнал что число отрицательное. Необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах кроме знакового на противоположные. Дополнительный код преобразуется в прямой также, как и обратный, с последующим прибавлением единицы к младшему разряду.
Вопрос: если это число (9F70)16 → (1001111101110000)2 обратный код?
cf.ppt-online.org/files/slide/d/dJazP7D3GZk9snovARKxYQ2ImlyjNwh6XOF0t5/slide-14.jpg
Рассмотрим порядок перевода числа -9 из десятичной системы в дополнительный код:
1. запишем число без знака: 9;
2. преобразуем число в двоичный код: 00001001;
3. получим обратный код: 11110110;
4. прибавим 00000001 и получим: 11110111.
Если результат операции представлен в дополнительном коде, то для перевода его в десятичный вид используем нижеследующую процедуру
1. запишем дополнительный код: 11110111;
2. получим обратный код: 00001000;
3. прибавим 00000001: 00001001;
4. преобразуем число в десятичный код: -9
9F70=9*16³+15*16²+7=40816