Как преобразовать двоичное число с плавающей точкой в ​​* отрицательное * двоичное число с плавающей точкой? - PullRequest
0 голосов
/ 17 сентября 2018

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

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

Целое число:

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
...