1.(简答题, 20 分)
采用定点整数表示,字长8位,含1位符号位,写出下列各数的原码、反码、补码和移码:
(1)1010 (2)0101 (3)0010 (4)1111
本题共20分,每小题5分,每个小题中每错一个编码扣1分
(1)[1010]原=00001010
[1010]反=00001010
[1010]补=00001010
[1010]移=10001010
(2)[0101]原=00000101
[0101]反=00000101
[0101]补=00000101
[0101]移=10000101
(3)[0010]原=00000010
[0010]反=00000010
[0010]补=00000010
[0010]移=10000010
(4)[1111]原=00001111
[1111]反=00001111
[1111]补=00001111
[1111]移=10001111
2.(简答题, 20 分)
采用定点整数表示,字长8位,含1位符号位,写出下列各数的原码、反码、补码和移码:
(5)-1000 (6)-1011 (7)-1001 (8)-0001 (9)-0
本题共25分,每小题5分,每个小题中每错一个编码扣1分
(5)[-1000]原=10001000
[-1000]反=11110111
[-1000]补=11111000
[-1000]移=01111000
(6)[-1011]原=10001011
[-1011]反=11110100
[-1011]补=11110101
[-1011]移=01110101
(7)[-1001]原=10001001
[-1001]反=11110110
[-1001]补=11110111
[-1001]移=01110111
(8)[-0001]原=10000001
[-0001]反=11111110
[-0001]补=11111111
[-0001]移=01111111
(9)[-0]原=10000000
[-0]反=11111111
[-0]补=00000000
[-0]移=10000000
3.(简答题, 20 分)
C语言程序在32位机器上运行。程序中定义了三个变量X、Y、Z,其中X和Z是int型,Y为short型。当X=127,Y=-9时,执行赋值语句Z=X+Y后,X、Y、Z的值分别是多少?(十六进制数表示)
本题共15分,每个5分
X=0000007FH
Y=0FFF7H
Z=00000076H
X = 127 (int 占 4字节 32位) 换算16进制 就是 0000007FH
Z = 127 - 9 = 118同上 , 16 进制 是 00000076H
Y = -9 二进制用补码表示
原码:1000 0000 0000 1001
反码:1111 1111 1111 0110
补码:反码+1
1111 1111 1111 0111 --> F F F 7
4.(简答题, 20 分)
字长5位,含一位符号位,计算[X]补+[Y]补,并判断是否溢出。
(1)[X]补=10001 [Y]补=11001
(2)[X]补=01001 [Y]补=00111
(3)[X]补=10011 [Y]补=01101
(4)[X]补=01110 [Y]补=11010
本题共20分,每小题5分,其中计算过程2分,判断是否溢出3分
(1) [X]补+[Y]补=01010B=+10
符号位有进位,最高数据位无进位,有溢出
(2)[X]补+[Y]补=10000B=-16
符号位无进位,最高数据位有进位,有溢出
(3) [X]补+[Y]补=00000B=0
符号位有进位,最高数据位有进位,无溢出
(4)[X]补+[Y]补=01000B=+8
符号位有进位,最高数据位有进位,无溢出
5.(简答题, 20 分)
字长5位,含一位符号位,计算[X]补-[Y]补,并判断是否溢出。
(1)[X]补=10101 [Y]补=11010
(2)[X]补=01010 [Y]补=01110
(3)[X]补=00011 [Y]补=11101
(4)[X]补=01110 [Y]补=10110
本题共20分,每小题5分,其中计算过程2分,判断是否溢出3分
[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补
由于一般的运算器中只有加法器,因此本题的解答按照[X-Y]补=[X]补+[-Y]补运算,并进行溢出判断
(1)[X]补+[-Y]补=11011B=-5
符号位无进位,最高数据位无进位,无溢出
(2)[X]补+[-Y]补=11100B=-4
符号位无进位,最高数据位无进位,无溢出
(3)[X]补+[-Y]补=00110B=+6
符号位无进位,最高数据位无进位,无溢出
(4)[X]补+[-Y]补=11000B=-8
符号位无进位,最高数据位有进位,有溢出