如何将二进制浮点数转换为负二进制浮点数?
例如:将十进制数字“ -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 DEC == 111001,101100 BIN
现在我拥有正的二进制数,我想取反它。 我用1和2的补码进行了尝试,但这显然不正确,如在交叉检查中所见:
否定DEC 39.7到-39.7 DEC:
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