Как представить отрицательное число дробью в дополнении до 2?

Итак, я хочу представить число -12.5. Таким образом, 12,5 равно:

001100.100

Если я не вычисляю дробь, то все просто, -12 это:

110100

А что такое -12,5? это 110100.100? Как я могу вычислить эту отрицательную дробь?


person Tom    schedule 17.03.2013    source источник


Ответы (3)


В десятичных системах счисления каждая числовая позиция (или столбец) представляет (читая число справа налево): единицы (то есть 10 ^ 0), десятки (т. е. 10 ^ 1), сотни (т. е. 10 ^ 2) и т. д.

С беззнаковыми двоичными числами основание равно 2, поэтому каждая позиция становится (опять же, читая справа налево): 1 (т.е. 2 ^ 0), 2 (т. е. 2 ^ 1), 4 (т. е. 2 ^ 2) и т. д.

Например

2^2 (4), 2^1 (2), 2^0 (1).

В дополнении до двух со знаком старший бит (MSB) становится отрицательным. Поэтому он представляет собой знак числа: «1» для отрицательного числа и «0» для положительного числа.

Для трехбитного числа строки будут содержать следующие значения:

-4, 2, 1
 0  0  1 => 1
 1  0  0 => -4
 1  0  1 => -4 + 1 = -3

Значение битов, хранящихся в системе с фиксированной точкой (дробной), не изменяется. Значения столбца следуют тому же шаблону, что и раньше, от основания (2) к степени, но с отрицательным значением мощности:

2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125)

-1 всегда будет 111.000
-0,5 добавьте к нему 0,5: 111.100

В вашем случае 110100.10 равно -32+16+4+0,5 = -11,5. Что вы сделали, так это создали -12, а затем добавили 0,5, а не вычли 0,5.

На самом деле вам нужно -32+16+2+1+0,5 = -12,5 = 110011.1

person Morgan    schedule 20.03.2013

вы можете удваивать число снова и снова, пока оно не станет отрицательным целым числом или не достигнет определенного предела, а затем соответственно установите десятичную точку.

-25 is 11100111, so -12.5 is 1110011.1

person Immueggpain    schedule 17.03.2013

Итак, вы хотите представить -12,5 в дополнительном представлении 2

12.5:->> 01100.1

2-е дополнение (01100.1): -> 10011.1

проверьте ответы, проверив свойство взвешенного кода представления дополнения 2 (вес старшего разряда равен -ve). мы получим -16+3+.5=-12,5

person Rajesh Pradhan    schedule 12.09.2016