Как представить отрицательное число с дробью в дополнении 2?
поэтому я хочу представить число -12.5
. Итак, 12.5 равно:
001100.100
если я не вычисляю дробь, то это просто,-12
- это:
110100
но что такое -12.5? это 110100.100
? Как я могу вычислить эту отрицательную дробь?
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).
in signed twos-дополняют самый значительный бит (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
вы можете удваивать число снова и снова, пока оно не станет отрицательным целым числом или не достигнет определенного предела, а затем установить десятичную точку соответственно.
-25 это 11100111, так -12.5 является 1110011.1
Итак; U хотите представить -12.5 в представлении дополнения 2
12.5:->> 01100.1
дополнение 2(01100.1):->>10011.1
проверьте ans, проверив свойство взвешенного кода представления дополнения 2(Вес MSB - ve). получим -16+3+.5=-12.5