首页 > 编程知识 正文

为什么16位表示的数为-32768_32767,计算机32767是什么意思

时间:2023-05-05 15:08:44 阅读:157997 作者:888

最近有一个问题,为什么计算机的整数范围是- 32768到32767。 读了几篇序文,我觉得有点明白了。 可以从两个方面理解。

从二进制码的角度来看,最小负数是111111111111111111=-(pow (2,15 )-1 )=-32767 (最高有效比特是编码比特,不涉及运算) )。 以十进制表示,-32767~32767共有32767*2 1=65535个,但以二进制表示,16位共有pow (2,16 )=65536个。 这是因为用二进制表示时,0有两种表示方式。 0000 0000 0000 0000和1000000000 (0和-0),但在十进制中只计算了一种。 接下来,让我们看一下源代码的正0和负0:0000000000000和1000000000000。 在补数表示中,前者的补数还是0000000000000,后者取非符号位取正1的话,同样是00000000000,也就是说正0和负0就是补数:汇总的十进制和补数中的零都只有一种但是,因为知道补数也有16位,所以可以和原代码一样表示65536个数。 另一方面,补数中少了一个零的表示方法。 也就是说,补数中会出现比原代码多1个的符号。 这个符号是1000000000000。 因为并不是所有的原代码在转换为补数时都会变成1000000000000。 因此,人为地将补码1000000000000定为-32768。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。