2016-05-07 12 views
0

если я конвертирую двоичное число 000000 в комплимент 2, я получу комплимент 1 (инвертировать) = 111111 комплимент 2 (добавить +1) = здесь Я столкнулся с проблемой, возвращает ли это 000000 и 1 отбрасывается или возвращается 1000000?Binary в дополнении 2

Заранее благодарен!

ответ

0

Отбрасывает 1. Условие аналогично Arithmetic Overflow.

Прочность двух дополнений состоит в том, что это помогает нам сохранить двоичное представление, когда должны учитываться числа с цифрами, поскольку в математике значение 0 такое же, как и у -0. Если нам нужно отказаться от одного целого бита только для знака, то в 4-битном слове 0000 будет обозначать 0, а 1000 будет обозначать -0, растрачивая одно представление. Компонент двух помогает избавиться от этого. Если мы предположим, 4-битовые слова: val -val bits of val two's complement bits of -val (1's complement + 1) 0 0 0000 0000 (1111+0001) 1 -1 0001 1111 (1110+0001) 2 -2 0010 1110 (1101+0001) 3 -3 0011 1101 (1100+0001) ... 7 -7 0111 1001 (1000+0001) 8 -8 (no rep) 1000 (0111+0001) (обратите внимание, что для -8 у вас есть свое дополнение 8 в беззнаковых образом, т.е. 8 = 1000 и, следовательно, его поразрядного дополнения является 0111).

Таким образом, вы получаете представление для -8 путем 0 и -0 имеют один и тот же битовый шаблон, т.е. 0000. Используя это, для n бит мы можем представить все целые значения между -2^(n-1) по 2^(n-1)-1.

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

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