Как преобразовать двоичное число с плавающей запятой в * отрицательное * двоичное число с плавающей запятой?

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

Например: преобразовать десятичное число "-39,7" в двоичное.

Integer:

39 DEC to BIN:
39/2 = 19 | 1 Rest
19/2 = 9  | 1 Rest
9/2  = 4  | 1 Rest
4/2  = 2  | 0 Rest
2/2  = 1  | 0 Rest
1/2  = 0  | 1 Rest
39 DEC == 111001 BIN

Поплавок:

0,7 DEC to BIN:
0,7 * 2 = 1,4 -> 1
0,4 * 2 = 0,8 -> 0
0,8 * 2 = 1,6 -> 1
0,6 * 2 = 1,2 -> 1
0,2 * 2 = 0,4 -> 0
0,4 * 2 = 0,8 -> 0 (repeating)
0,7 DEC == 0,101100 BIN

Положительное число:
39,7 ДЕКАБРЯ == 111001,101100 БИН


Теперь, когда у меня есть положительное двоичное число, я хочу отрицать его. Я попытался сделать это, сделав это с дополнением 1 и 2, но это, очевидно, не так, как вы можете видеть при перекрестной проверке:

Отрицание 39,7 ДЕК -39,7 ДЕКАБРЯ:

111001,101100 
000110,010011 | 1's complement
000111,010100 | 2's complement

Перекрестная проверка:

Докажи это 39,7 + (-39,7) = 0

0111001,101100 | +39,7
0000111,010100 | -39,9
----------------------
1000001,000000 | != 65

0 ответов

Другие вопросы по тегам