请高手解释一下为什么-128用二进制表示为1000000000000000?

详细点128是负数

-128的8位补码是:1000 0000B,换算成十进制就是 128。
负数的补码,是用“模”计算出来的,即:
[X]补 = 256 - |X| = 256- |-128| = 128。
不要用“求反加一”来算,那只不过是一个经验公式而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-01-23
这是一个非常特殊的带符号位二进制编码数,表示的是十进制的-128;
补码:1000 0000;
反码:补码减1,1000 0000-1=1111 1111(低位向高位逐次借1,符号位保持不变);
原码:反码取反,符号位保持不变,可推出原码为1000 0000;
从上面的推导中我们发现了一个很有趣,很有意思的现象,那就是这个负数的补码和原码居然是一样的,都是1000 0000,从原码最“原始”的理解,这个数“应该”是表示十进制的-0,那么问题出来了,8位带符号位的二进制编码数0000 0000也表示十进制的0(-0也是0),那岂不是有两个8位二进制编码数都表示十进制的0吗?有冲突了!为了解决这一问题,计算机编码领域统一明文规定,这个补码表示十进制纯数学结果128的负数,也就是-128,以避免出现-0的情况
第2个回答  2012-02-24
严格来说在数学上,-128应该表示成-10000000(7个0),但是由于在计算机中每一位的信息只有两种,既高低电位,在逻辑上用0和1来表示,所以为了表示正负数,就规定在从左往右的第一位表示数的符号,0是正,是负,而后面的部分才是数值部分
第3个回答  2012-02-23
用128反复除以2取余数,再从下往上把余数写出来就行了。比如128除以2得64,余数是0,就是问号前的第一个0,再把64除以2得32,余数是0就是问号前的第二个0,就这样就出来了。 最前面那个1表示“-”号。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网