我在Stack Overflow中找到了不同的帖子,但是似乎没有人回答这个问题,因为在他们的问题中,给出了十进制表示(我的不是)或答案对我来说是模糊的(如this) .
我试图在分数或浮点数中减去二进制数字 .
0.0110
- 0.100101
给出的答案是 -0.001101
,但解决方案未显示 . 由于我没有看到任何直接的方式( not DEC到BIN)将二进制小数位转换为2的补码,我尝试从这个解决方案中实现解决方案 . [2552144_解释) . 使用它,我的答案与指定的答案不符 .
1.011010 <- 1's complement of 0.100101
+ 0.011010
__________
1.110100 <- 2's complement of 0.100101
然后将2的补码添加到 0.0110
:
0.011000
+ 1.110100
__________
10.001100 <- discard overflow '1'
我最终得到了 0.0011
的错误答案 . 我做错了什么?我忘记了我可以使用的任何原则吗?
1 回答
一个来自一个_2552150的补充,增加一个单位 . 在这种情况下,单位是
0.000001
,而不是1
(对于整数,它是1
,但您不使用整数但使用0.000001
的倍数) .添加成为: