最近的学习对一个点一直有疑问,为什么char类型范围是-128到127而不是-127到127
综合看了网上一些老哥的解释后,我自己总结得是这样的:
127这个很容易理解,因为最高位表示符号位,那么正的char最大就是0111 1111自然就是127
但到负数,就涉及到一个补码的东西,1111 1111应该表示的是-127,其补码为1000 0001;
那么1000 0000应该表示什么呢,这直观看起来就是-0,那+0就是0000 0000;
且看1000 0000的补码是0000 0000 这与0一样,说明出现了两个0的东西??
大概就是这样然后把这个1000 0000给定义为-128吧......
毕竟我们可以实验一下,拿1000 0000跟0111 1111相加看看,这两个的相加在计算机里会自动变成0111 1111+0000 0000得到0111 1111,嘶这不是127吗???写到这又疑惑了。。。