繁体   English   中英

小数的二进制补码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM