二进制中补码的最小负数为什么是10000000?怎么来的?解释的详细一点

 我来答
小江先声
2019-05-09
知道答主
回答量:1
采纳率:0%
帮助的人:747
展开全部
书上给出的这个二进制数是一个补码,按照补码的定义中所讲,一个负整数中补码计算是2^(N+1)+X(X代表的是二进制的真值)
你说的这个前提是给整形变量分配的是1个字节,就是共8位,最前面一位是符号位,1 0000000,这个时候按照定义来算,2^(7+1)+X=1 0000000,2^(7+1)即10 0000000,1 0000000减10 0000000刚好为真值(真值是有符号的)-1 0000000,也就是-128。我觉得这个临界值只能按照定义来看,如果按照这个补码取反再加一,算完如果把最高位舍去就成了00000000,
还有就是补码的出现本身就是为了使得计算机用加法代替减法,10000001(补码)代表-127,01111111代表+127,如果+127再加1,符号位就成1了,这肯定不行啊,所以最大就是+127,那在10000001和01111111之间的1 0000000只能是负数里的,把它规定为负数刚好又能使计算机解决一个麻烦(计算中减法不就是加负数么,把负数用补码表示实际就是让计算机做了加法,这个说法就是说把计算机和时钟的那个说法中涉及的,可以查阅资料),所以1 0000000也必须用来表示-128。
在寄畅园跳伞的木荷
推荐于2017-09-25
知道答主
回答量:91
采纳率:0%
帮助的人:23.6万
展开全部
原码有两个0值(0000 0000与1000 0000)

改为补码后只有一个0值了,即0000 0000。
8位二进制能表示的数的总个数没有变,而补码正数的表示方法较原码没有发生改变。所以原码里的另一个0值的数的位置给了负数,所以补码的负数就比原码的多了一个。
也就是说补码的最小值比原码的最小值还要小1,所以你当然不能用原码的最小值转换得到补码最小值咯。

你可以将1000 0000(补)转换为原码验证一下。
更多追问追答
追问
复制粘贴
我也会
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-05
展开全部
符号位 1 代表负数,其他各位组成的数越小,整个负数越小
更多追问追答
追问
10000001和10000000那个小?
那你是说负一比零大喽
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2022-07-28 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

八位的补码,共 256 个。

  其中 128 个,代表负数:-1~-128。

    最小的,不就是-128 吗!

  另外 128 个代表:0~+127。

-------------------

负数的八位补码,定义式如下:

  [ X ]补 = 2^8 + X

按照定义式,就是:

  [-128]补 = 256 + (-128 )

         = 128 (十进制)

         = 1000 0000 (二进制)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式