通过题目来讲一讲数据的机器级表示相关知识1计算机组成

这是我参与更文挑战的第26天,活动详情查看: 更文挑战

题目1

假定一台 32 位字长的机器中带符号整数用补码表示,寄存器 R1 和 R2 的内容分别为:R1:0000108BH,R2:8080108BH。不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容的真值不同。

请问:执行下列指令时,寄存器 R1 和 R2 的内容所对应的真值分别为多少?

① 无符号数加法指令

② 带符号整数乘法指令

③ 单精度浮点减法指令(IEEE754)

题目1 解答

  R1:0000108BH                         R2:8080108BH
① +108B                                    +8080108BH
② +108B                                    -7F7FEF75H                     
③ 0 0000 0000 0000 0000 0010 0001 0001 011 | 1000 0000 1000 0000 0001 0000 1000 1011 
 +0.002116H x2^-126                         -1.002116H x2^-126
复制代码

题目2

假定在一个程序中定义了变量 x、y 和 i,其中,x 和 y 是 float 型变量(用IEEE754 单精度浮点数表示),i 是 16 位 short 型变量(用补码表示)。程序执行到某一时刻,x=-0.125、y=7.5、i=100,它们都被写到了主存(按字节编址),其地址分别是 100,108 和 112。请分别画出在大端机和小端机上变量 x、y 和 i 在内存的存放情况。

题目2 解答

x = -0.125 = -0.001B = -1.0 * 2^-3

x = 1 0111 1100 000 0000 0000 0000 0000 0000 (BE000000H)

y = 7.5 = +111.1B = +1.111 * 2^2

y = 0 1000 0001 111 0000 0000 0000 0000 0000 (40F00000H)

i = 100 = 0000 0000 0110 0100 (0064H)

大端机 小端机

地址 内容 内容

100 BEH 00H

101 00H 00H

102 00H 00H

103 00H BEH

108 40H 00H

109 F0H 00H

110 00H F0H

111 00H 40H

112 00H 64H

113 64H 00H

题目3

假设要传送的数据信息为:100011,若约定的生成多项式为:G(x)= x^3+ 1,则校验码为 111。假定在接收端接收到的数据信息为 100010,说明如何正确检测其错误,写出检测过程。

题目3 解答

用 100010 111 除以 1001,得到余数为 001,不为 0,说明有错。