我想知道为什么在公式中计算任何数据类型的范围即2^(n-1(,为什么是n-1,n是给定数据类型占用的位数
假设类型是无符号的,最大值为(2n(-1,因为有2n值,其中一个为零
2(n-1(是第n位单独的值-位1是20,位2是21等等
这对任何基数都是一样的——在十进制中,n位数字可以表示10个n不同的值,最大值为10个n>1,第n位数字为"0";价值;10(n-1(。
例如,有三个十进制数字的最大数字是999(即103-1(,第三个十进制位数是"0";"百位";,102。
第一个2^(n-1)
不正确,数据类型表示的最大(无符号(数为:
max = 2^n - 1
因此,对于8位数据类型,最大表示值为255
2^n
告诉您所表示的数字数量(8位示例为256
(,但由于您希望包括0
,因此范围为0 to 255
,而不是1 to 256