C语言中无符号int函数取值范围是-2147483648~2147483647,为什么正负在数轴上不对称,为什么正数部分不是2147183648?求详细解答【高悬赏!】
如果仅凭主观臆想而不是依据计算机原理的话,我岂不是可以说取值范围是-2147483647~2147483648?【一脸不解】,求大神指教!!
追答那就是说负数比正数少一个咯,那么在数轴上不同样是不对称吗?
另外,如果2147483648是最大的32位正整数,那么它的二进制表示形式就是
1000 0000 0000 0000 0000 0000 0000 0000
也就是说它的最高位(符号位)是1,如果它是正数,那你让电脑如何识别其他负数?
所以,最大的32位正整数只能是下面这个:
0111 1111 1111 1111 1111 1111 1111 1111
也就是16进制的 0x7FFFFFFF、10进制的2147483647
为什么能表示的数一定是偶数?
追答每一个位置都是0,1两种可能,那一共的可能数不就是2^n嘛;首位当做符号位顶多少了一位,总数还是偶数。