以前经常看到带符号的char类型取值范围是-128——127,今天突然想为什么不是-127——127,-128是怎么来的?
127好理解,char类型是8位,最高位是符号位,0正1负,所以01111111是127。
但是-128是怎么来的呢?11111111不是-127吗?
后来想起来计算机里面所有数都是用补码表示的,正数补码是其本身,负数补码是原码的反码加1。
所以-127是10000001,而10000000换算过来就是-128。
以前经常看到带符号的char类型取值范围是-128——127,今天突然想为什么不是-127——127,-128是怎么来的?
127好理解,char类型是8位,最高位是符号位,0正1负,所以01111111是127。
但是-128是怎么来的呢?11111111不是-127吗?
后来想起来计算机里面所有数都是用补码表示的,正数补码是其本身,负数补码是原码的反码加1。
所以-127是10000001,而10000000换算过来就是-128。