1.填空题
8位二进制表示无符号数十进制整数的范围____,共___个数;8位二进制原码表示的十进制数范围___,共___个数;8位二进制补码表示十进制数的最大值___,最小值___。
答案:0~255, 256; -127~+127, 255; -128 , 127
解析:
(1)无符号数的所有位数均表示数字,所以8位二进制所能表示的无符号数整数最小为00000000B=0D,最大11111111B=255D,而0~255共256个数。
(2)在计算机中,常用数的符号和数值部分一起编码的方式表示正负数,正号用0表示,负号用1表示。我们将数值用其绝对值,正数的符号位用0表示,负数的符号位用1表示的数称为原码。8位二进制数第一位是符号位,其实只有七位表示数字,故范围为11111111B~01111111B,十进制表示为-127~127.因为其中10000000B=-0,00000000B=+0,在十进制中均为0,故只有255个数。
(3)补码即为原码取反加一,正数的补码是其本身,8位二进制补码最大为01111111转化为十进制数得+127;负数的补码是把一个数连同符号位取反再加一,即8位二进制补码最小为10000000转化为十进制得-128.
2.选择题
下列各数转化为十进制数最小的是()
A.0FH
B.补码11101010
C.无符号数10000001
D.反码01011
答案:B
解析:A. 0FH=00001111B=15D
B.11101010符号位为“1”,可知其为负数。求原码时,符号位不变,数值部分按位取反,再在末位加1.补码11101010除符号位按位取反为10010101再加1得原码为10010110,转化为十进制得-22.
C.无符号数直接转化为十进制数计算得129.
D.01011符号位为0,可知其为正数。将除符号位的其余各位取反得00100,转化为十进制得4.
综上比较可得-22为最小值,故选B.