2014-02-03 3 views
0

Моей книга говорит, что, чтобы получить представление дополнительного кода комплемента, просто переверните биты и добавить 1. Поправьте меня, если я ошибаюсь, но двоичное представление -1 будет:Как может 1111 1111 быть двухкомпонентным представлением -1?

1000 0001 

СЗБ 1 обозначает знак (1 - отрицательное число), а 1 - в самом конце, откуда приходит 1.

Так что, когда я флип бит:

0111 1110 

Так почему же моя книга говорит, что дополняет представление в двойке -1 1111 1111? Я предполагаю, что я где-то путаюсь.

+1

внимательно прочитал вашу книгу –

ответ

2

Книга имеет право. 1111 1111 - представление -1 в дополнении 2.

Попробуйте добавить один к 1111 1111. Результат:

1111 1111 + 
    0000 0001 
    --------- 
1 0000 0000 

«один» в начале результата «перенос бита». Результат - ваш ответ: 0. На первый взгляд вы бы сказали, что переполнение произошло, но не в это время, потому что результат (нуль) может быть представлен на 8 бит.

Еще один пример:

Если добавить -1 -1, то вы должны получить -2:

1111 1111 + 
    1111 1111 
    --------- 
1 1111 1110 

и так далее ...

0

Так почему же моя книга скажем, что представление двух дополнений -1 равно 1111 1111?

Это потому, что MSB является отрицательным, а остальные положителен:

1111 1111 = -128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 => -1 

 Смежные вопросы

  • Нет связанных вопросов^_^