二进制中补码的最小负数为什么是10000000?怎么来的?解释的详细一点
展开全部
书上给出的这个二进制数是一个补码,按照补码的定义中所讲,一个负整数中补码计算是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。
你说的这个前提是给整形变量分配的是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。
2015-11-05
展开全部
符号位 1 代表负数,其他各位组成的数越小,整个负数越小
更多追问追答
追问
10000001和10000000那个小?
那你是说负一比零大喽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
八位的补码,共 256 个。
其中 128 个,代表负数:-1~-128。
最小的,不就是-128 吗!
另外 128 个代表:0~+127。
-------------------
负数的八位补码,定义式如下:
[ X ]补 = 2^8 + X
按照定义式,就是:
[-128]补 = 256 + (-128 )
= 128 (十进制)
= 1000 0000 (二进制)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询