[英]Two's Complement of fractional numbers
几个星期以来,我一直在 web 周围寻找这个问题的解决方案,但没有任何成功。
我的大学教授告诉我,要将带有小数部分的二进制数转换为二进制补码中的负数,我们必须这样做:
1)将数字从以10为底的数字转换为以2为底的数字(+4.25)=(0100.0100)
2)我们现在唯一需要转换为二进制补码的部分是点之前的部分。
0100 -> 1011 -> 1011 + 1 -> 1100
所以对他来说,二进制补码中的 -4.25 是 (1100.0100),小数部分没有任何转换。
对我来说,这个解决方案是错误的,因为如果我们尝试将这两个数字相加,我们会得到
0100.0100 + 1100.0100 = 0000.1000
那是 0.5 而不是 0
对于一小部分,您所做的与普通 integer 完全相同,这意味着将所有位反转并 +1 为您的表示的最低有效位:
4.25 = 0100.0100
-4.25 = 1011.1100
也想不出你教授的意思。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.