问题:机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点整数。
一、概念
概念:无论原码、反码、补码,n位二进制数可以表示2^n个数值
二、从范围证明
有符号的情况下,表格如下:
其中,原码、反码含有-0、+0 , 而补码不划分0
由此,可知:
① 原码、反码能表示的数值个数:
-(2^(n-1)-1)~-0 =2^(n-1)
+0~(2^(n-1)-1) =2^(n-1)
共计2的n次方个
② 补码能表示的数值个数:
-2^(n-1)~0 =2^(n-1)+1
2^(n-1)+1 + 2^(n-1)-1=2^n
共计2的n次方个
三、例题
机器字长为8位的二进制数可以用补码(反码/原码)来表示()个不同的有符号定点整数。
解:
原码、反码:
数值的范围为(-127~-0 + 0~+127))
128+128=256=2的8次方
补码:
数值的范围为(-128~0 ~ +127))
129+127=256=2的8次方
即无论原码、反码、补码能表示的数值个数一致,都是2的8次方