计算机中n比特有符号整数的表示范围为[−2^(n−1) ~ 2^(n−1)−1]
解释:
拿1byte(1byte=8bit),8未为例,首位为符号位,所以八位有符号数的取值范围就是
【1111 1111——1000 0001】 -127—— -1(第一位为符号位,不进行计算,1代表负)
【0000 0000——01111 1111】0—— +127(第一位为符号位,不进行计算,0代表正)
从这个取值范围中我们可以看到 【1000 0000】这个值我们没有用到,他通过二进制计算出来的结果是“0”,0是不分正数和负数的,所以这个数和 【0000 0000】重复,所以计算机把【1000 0000】这个数定义为-128
同理,我们可以得到2byte,4byte,8byte有符号整数的范围是
2byte (16位)
【1000 0000 0000 0000——0111 1111 1111 1111】
-32768(-2^15)——+32767(2^15-1)
4bytr(32位)
【1000.... (1后面24个0)——0111.... (0后面24个0) 】
-2^31(-2147483648)——2^31-1(+2147483647)
8byte(64位)
【1000.... (1后面63个0)——01111(0后面63个1) 】
-2^63——2^63-1