Подтвердить что ты не робот

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

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

001100.100

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

110100

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

4b9b3361

Ответ 1

В системах с десятичными числами каждая позиция номера (или столбец) представляет (читает число справа налево): единицы (что составляет 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

Значение битов, хранящихся в фиксированной (дробной) системе, не изменяется. Значения столбцов следуют тем же шаблонам, что и раньше, base (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

Ответ 2

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

-25 - 11100111, поэтому -12.5 равно 1110011.1

Ответ 3

Итак, U хочет представить -12.5 в 2 представлениях представления

12.5: → > 01100.1

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

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