困扰我一晚上关于补码的一个问题

2019-03-03 00:13:41 +08:00
 Hsinyao

为什么-1 的补码是 1.0000 ?还有为什么说纯小数下补码能比原码多表示一个-1 ?

2161 次点击
所在节点    问与答
7 条回复
sulinehk
2019-03-03 00:16:58 +08:00
-1 的补码在 4 位下应该是 1111
小数或者说浮点数应该是按照 IEEF 754 标准
111qqz
2019-03-03 00:27:12 +08:00
???
clker
2019-03-03 06:50:33 +08:00
补码只是针对整数而言。小数完全是另外一套表示法,IEEE754。
Hsinyao
2019-03-03 08:46:51 +08:00
@sulinehk
@clker 我指的是定点小数的补码表示法,即纯小数,小数点前面是符号位,小数点后是数字位那种。ieee754 是浮点小数的
Hsinyao
2019-03-03 08:48:58 +08:00
@111qqz ???
yianing
2019-03-03 09:43:52 +08:00
因为原码的 x.xxxx 是表示不到-1 的,1.0000 在原码中是-0,0.0000 是+0,补码将最高位不再看作符号位,而是赋予一个负权值,1.0000=-1*2^0 + 0=-1,负 0 消失,变成-1,而在源码中+0 和-0 是被看成相等的,变成补码后自然多了一个-1。
111qqz
2019-03-03 13:55:07 +08:00
@Hsinyao 不好意思,一开始没看懂你的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/540448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX