Как дополнение 2 -128 в битовом представлении для 8-битного регистра составляет 1000 0000?

У меня есть основной вопрос для представления чисел со знаком в компьютере. Q) Как я узнал в 8-битном представлении, 7-й бит (отсчет от 0-7) всегда является знаковым битом, а оставшиеся 0-6 битов являются величиной число

так что в случае отрицательного числа 7-й бит всегда будет 1. Тогда как -128 равно 1000 0000??

Поскольку мы видим 1000 0000, мы предполагаем, что это отрицательное число, и принимаем величину 000 0000 как величину... и если взять для этого дополнение 2, получается 1000 0000

так и в этом случае знаковый бит перезаписывается в 8-битный регистр.. пожалуйста, объясните кому-то.. надеюсь, я ясен в моем объяснении

1 ответ

В дополнение к двум, когда старший бит равен 1, число равно - (инвертированное число + 1)

Так для примера 1000 0000 (при условии, что у нас есть 8-битные числа), то есть - (инвертированная 1000 0000 + 1) = - (0111 1111 + 1) = - (127 + 1) = -128

Чтобы создать двойное дополнение отрицательного десятичного числа, вы делаете то же самое - для заданного числа инвертируйте биты, а затем добавляете 1.

То есть: для -5, 5 - 0000 0101 (при условии, что мы будем 8-битным числом). Перевернутый 1111 1010, добавить 1 = 1111 1011.

Для -128 128 - это 1000 0000 (игнорируя тот факт, что старший бит будет означать -ve для 8-битного числа), Inverted = 0111 1111, добавьте 1 = 1000 0000.

Другие вопросы по тегам