为什么定点整数有符号取值范围是这个

明明无符号的话直接用2^n,整数也是2^n,为什么定点整数明明也是一个整数,取值范围却用2^(-n)

img

定点整数之所以取值范围是-2^(n-1)到2^(n-1)-1,是因为定点数需要用一位来表示数值的正负。
对于一个n位的无符号整数,可以表示2^n个值,范围是0到2^n-1。
而对于一个n位的有符号整数,需要用一位来表示正负,所以可用位数减少1位,变成n-1位。这n-1位可以表示2^(n-1)个正值(0到2^(n-1)-1),再加上2^(n-1)个负值(-2^(n-1)到-1)。于是整个取值范围就是从-2^(n-1)到2^(n-1)-1。
定点整数就是一种有符号整数,所以它的取值范围也是这样确定的。即使我们知道是一个整数,但仍需要用一位来表示正负,所以相比无符号整数,可表示值的位数减少了1。这就是定点整数取值范围的来历。