在讨论位数与数值范围的时候,先要明确是什么类型的数:
#无符号型#
无符号型的数字总是从0开始到最大值。例如8位(字节):
最小值(0000 0000)2,最大值是(1111 1111)2。所以是0~255(2的8次方-1)。
如果是n位数,则其数值范围为:
0 ~(2的n次方-1)
#有符号型#
因为有符号型的数,都是用补码表示,且规定正数的补码就是本身,负数的补码需要进行计算。
要达到以上规定的要求,要求在表示正数的时候,最高位只能为0。按8位(字节)举例:
最大值为(0111 1111)2,也即2的7次方减1,为127。
最小值应该是(1000 0000)2也就是-128,(注:这里要用到负数的补码转换成十进制)
如果是n位数,则其数值范围为:
-(2的n-1次方) ~ +(2的n-1次方减1)