Как преобразовать двоичное число с плавающей точкой в отрицательное двоичное число с плавающей точкой?
Например: преобразовать десятичное число "-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