首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负零的2s补

负零的2s补
EN

Stack Overflow用户
提问于 2014-05-19 21:46:21
回答 2查看 2.2K关注 0票数 1

我有个问题:你知道2s补码,所以你可以得到一个正数的负数,反之亦然,再加上一个。例如:

代码语言:javascript
复制
8 Bit
121 = 0111 1001
 1st= 1000 0110
  +   0000 0001
      ---------
      1000 0111 --> -121 

所以现在如果我们有-0

零看起来是8位

代码语言:javascript
复制
0000 0000

所以负0应该看起来

代码语言:javascript
复制
 1111 1111 + 0000 0001
= 10000 0000

但那是512

所以我想我误会了

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-19 21:58:16

1 0000 0000b是256,而不是512。截断为8位,等于0。

这是因为用二的补数,零等于零。没有正负零。

将其与一个人的补语或符号位进行比较,其中正零和负零是不同的值。

票数 0
EN

Stack Overflow用户

发布于 2014-05-19 22:25:50

来扩展我先前对这个问题的评论

8位中的1111 1111 + 0000 00010000 0000,第9位是丢失的,因为它没有位置。

是的,否定句的补语是肯定的

代码语言:javascript
复制
-121 = 1000 0111
 1st = 0111 1000
   +   0000 0001
       ---------
       0111 1001 --> 121 

把它们看作一个圆,在某个点有0,一次加1到相反的点(128,8位),在那个点,符号被切换,绝对值开始下降,例如:128 + 1 = -127,当你继续添加1时,值返回到0,圆圈就完成了。

因此,给定一些位,您只有那么多位,没有更多,如果您想要对值进行签名,则实际上只有x-1位表示该值,因为最重要的位用于符号(0 -> +;1 -> -)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23747736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档