Relax1000 计算机组成原理 · 第2章 数据的表示和运算 · 解析¶
第2章 数据的表示和运算¶
本章 89 题;解析册印刷页 86–102。
速对答案(原书): ADBDC BDBAA ABCCC BDBCD CCAAA CACCB DCCCA BDBAB DBCCC ACCBB BCCAB ACCDD ACCCA ADDCC BBCAA CDCCA BBCBC BCDB
Q1¶
速对表原值: A
详细解析标注: A
37 的二进制为 00100101,取反得 11011010,加 1 后为 11011011,A 正确。
Q2¶
速对表原值: D
详细解析标注: D
对于补码表示的定点整数如 x 补 = X0X1X2…Xn n 为整数 ,模数是2n+1。定点小数补码的模: 题目中的表示法 [x]补 = X₀ . X₁X₂...Xₙ 是一种定点小数的表示。其中 X₀ 是符号位(权重为 -2⁰ = -1),小数点后的 X₁ 到 Xₙ 是尾数。
注意:正小数的补码就是其本身。负小数 x 的补码定义为:[x]补 = 2 + x (当 -1 ≤ x < 0 时)。补码本质就是取模,让对应机器数落在模长范围内,这里的“2”就是因为取模运算产生的溢出在小数点左边第二位(即权值为 2¹=2 的位置),被自动舍弃。因此,纯小数补码的模是 2。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q3¶
速对表原值: B
详细解析标注: B
F 的 ASCII 码应 46H=1000110B。标准的 ASCII 码为 7 位,在 7 位数前面增加 1 位校验位。按照偶校验规则,偶校验位为 1。存储单元中存放的是整个校验码(包括校验位和信息位)应为 11000110B=C6H,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q4¶
速对表原值: D
详细解析标注: D
补码负数的特点是数值位对应的真值越小,其绝对值越大,即负得越多。所以,由 4 个 1 和 4 个 0 组成的补码数中,最小的补码表示为 10000111,即真值为 -121,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q5¶
速对表原值: C
详细解析标注: C
计算机里的各种数据,都是二进制数据,它们本身没有区别。通过不同的指令操作码 来对数据进行解释:如果是逻辑运算(与或非),CPU 就把它们当成逻辑数据;如果是算术运算加减乘除),CPU 就把它们当成数值数据,C 正确。
Q6¶
速对表原值: B
详细解析标注: B
计算机常用补码表示有符号数,以实现加减法的统一,A 错误,B 正确;浮点数的尾数可以用原码和补码表示,在 IEEE 754 标准中,采用原码表示浮点数尾数,C 错误:浮点数的阶通常采用移码表示,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q7¶
速对表原值: D
详细解析标注: D
表示移码时,真值〔公式/符号见原页版面片段〕1 = 〔公式/符号见原页版面片段〕 移 − 128,表示补码时:
①当符号位为 0(正数和 0),补码真值〔公式/符号见原页版面片段〕2 = 〔公式/符号见原页版面片段〕 补,差值〔公式/符号见原页版面片段〕1 − 〔公式/符号见原页版面片段〕2 =− 128。(这里 〔公式/符号见原页版面片段〕 移 = 〔公式/符号见原页版面片段〕 补 = 机器数)
②当符号位为 1(负数),补码真值〔公式/符号见原页版面片段〕2 = 〔公式/符号见原页版面片段〕 补 − 256,差值〔公式/符号见原页版面片段〕1 − 〔公式/符号见原页版面片段〕2 = 128。综上,答案选 D。
注意:移码和补码,表示范围一样,同一个真值,其移码和补码符号位相反。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q8¶
速对表原值: B
详细解析标注: B
由题目可知,x 符号位为 0 而 y、z 符号位为 1,说明 x 是正数,y、z 是负数,x 最大。对于补码负数,机器数越大,对应真值越大,所以 y<z,综上 y<z<x,答案选 B。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q9¶
速对表原值: A
详细解析标注: A
两者的区别在于符号位不同,A 错误。
Q10¶
速对表原值: A
详细解析标注: A
A 选项:x1 为 1,×2x3 至少有一个为 1,如[X]补=1.101,则 X = -0.011,X = -(1/4+1/8),即 X>-1/2 成立;[X]补=1.110,则 X=-0.010,X = -1/4,即 X>-1/2 成立:[X]补=1.111,则 X = -0.001,X -1/8,即X>-1/2 成立,A 正确。B 选项:x1 为 1,×2×3 任意时,如[X]补=1.100,则 X=-0.100,X=-1/2,即 X>-1/2 不成立,B 错误。C 选项:x1 为 0,×2×3 至少有一个为 1,如[X]补=1.010,则 X=-0.110,X=-(1/2+1/4),即X>-1/2 不成立,C 错误。D 选项:x1 为 0,×2x3 任意,如[X]补=1.000,则 X=-1,即 X>-1/2 不成立,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q11¶
速对表原值: A
详细解析标注: A
2 个“0”和 6 个“1”组成的 8 位二进制整数中,若用补码表示,要使得数值最大,符号位必须为 0,并且将“1”置于高位上,则补码最大为 01111110B=126,故 D 错误;补码表示的最小值,符号位应是 1,因为补码变原码要取反,故其余的 1 应放在低位上,则补码最小为1001 1111B=-97,故 C 错误;若采用移码表示,偏置值为 128,要使整数最大则 1 应放置在高位,即11111100B-10000000B=252-128=124,故 B 错误;若采用移码表示,偏置值为 127,要使整数最小则1 应放置在低位,即真值=00111111B(移码)-01111111B(偏置值)=11000000B=-64,则 A 正确。提示:题设补码表示的最小整数也可以通过位权来解释,将 5 个 1 放在最低位上,剩下的 1 放在符号位上(唯一的负权),此时为最小整数。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q12¶
速对表原值: B
详细解析标注: B
模 4 补码具有模 2 补码的全部优点而且容易检查加减运算中的溢出问题。有必要指出,存储每个模 4 的补码时,只要存一个符号位,因为任何一个正确的数值,其模 4 补码的两个符号位总是相同的。只在把两个模 4 补码的数送往算术与逻辑部件完成加减计算时,才把每个数的符号位的值同时送到算术与逻辑部件的两位符号位,即只在算术与逻辑部件中采用双符号位,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q13¶
速对表原值: C
详细解析标注: C
C 正确,n 位的移码,当真值 x 为正,[x]_移=x+2^{n-1},而补码[x]_移=x,两者相差一个 2^{n-1},也就是符号位移码是 1,补码是 0;当真值 x 为负,[x]_移=x+2{n-1},而补码[x]_移=x+2,也就是符号位移码是 0,补码是 1;},两者相差一个 2^{n-1
A 错误,对于真值 0,原码和反码各有两种不同的表示形式,而补码和移码只有唯一的一种表示形式。正因为补码和移码 0 的表示形式唯一,才使得补码和移码比原码和反码能够表示的负数个数多一个,也就是 n 位的补码和移码的真值范围比反码和原码多一个最小负数− 2〔公式/符号见原页版面片段〕−1,D 错误。
B 错误,正数的原码、反码、补码表示一样,但移码不同。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q14¶
速对表原值: C
详细解析标注: C
字长 12 位,定点补码规格化小数表示时,所能表示的最小正数是0.10000000000,即 1/2;所能表示的最大正数是 0.11111111111,即 1 − 2−11,C 正确。规格化负数小数范围为[-1, -1/2)。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q15¶
速对表原值: C
详细解析标注: C
全加器有 3 个输入(2 个 bit 的输入位,1 个低位进位输入)两个输出(1bit 进位输出,1bit 求和结果),可以处理低位的进位。4 位二进制数相加需要 4 个全加器依次连接,低位全加器的进位输出作为高位全加器的进位输入,C 正确;半加器有 2 个输入(2 个 bit 的输入位,无低位进位输入)两个输出(1bit 进位输出,1bit 求和结果),半加器不考虑低位进位,不能完成多位二进制数相加,B、D 错误;单个全加器只能处理一位二进制数相加,A 错误。
Q16¶
速对表原值: B
详细解析标注: B
并行进位加法器能并行生成各位的进位信号,大大减少了进位信号的传输延迟,逻辑门延迟更低,B 正确。
Q17¶
速对表原值: D
详细解析标注: D
CPU 由控制器和运算器组成,指令译码由控制器的指令译码器完成,ALU 属于运算器,所以指令译码不属于 ALU 功能,D 错误。ALU的功能有:定点数的逻辑、移位、算数运算。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q18¶
速对表原值: B
详细解析标注: B
运算器中通常都有状态标记寄存器,计算机中的条件转移指令正是根据状态标记寄存器中的状态位来判断是否执行转移指令,A 正确。原码乘法中,符号才单独考虑,被乘数和乘数的符号位需要进行异或运算。补码乘法符号位参加运算,B 错误。用 n 位全加器实现两个 n 位操作数各位同时相加,这种加法器称为并行加法器,高位的进位依赖于低位进位,C 正确。在小数除法中之所以需要用被除数减去除数,其原因是使被除数的绝对值小于除数的绝对值以避免溢出,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q19¶
速对表原值: C
详细解析标注: C
本题中 4 个选项均会对加法器的速度产生影响,但只有进位传递延迟对串行加法器的影响最为关键,C 正确。
Q20¶
速对表原值: D
详细解析标注: D
四位并行加法器结构如下图所示,加法每位全和 Si 的形成除与本位相加两数数值位有关外,还与低位数送来的进位 Ci 有关,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q21¶
速对表原值: C
详细解析标注: C
计算机加法器判断补码定点加减运算的溢出时,都涉及异或运算,因此溢出判断电路一般使用异或门实现,C 正确。请回忆 CF、OF、双符号位判断溢出各自的过程。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q22¶
速对表原值: C
详细解析标注: C
标志寄存器中的内容,是执行指令的过程中,CPU 根据指令执行的结果生成的,用户不能通过指令直接指定标志寄存器的编号或者修改它,C 错误。
Q23¶
速对表原值: A
详细解析标注: A
补码减法转化为加法:减去一个数等于加上该数的反码+1(补码负数)已知 X = 0101B, Y = 0011B。要计算 [X - Y]补,根据规则:[X - Y]补 = [X]补 + Y+1。做加法:0101 + 1101丢弃最高位的进位 1,结果为 0010。0101 1100 + 0001 ———— 10010判断溢出:X 是正数,-Y 是负数,正数加负数绝对不可能发生溢出。(因为结果的绝对值必然小于两个加数的绝对值中较大的那个)。或者用进位信息判断,补码溢出位 OF=最高位进位⊕次高位进位=1⊕1=0,无进位。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q24¶
速对表原值: A
详细解析标注: A
减法 x - y 是利用加法器实现的,公式为:x + (按位取反的 y) + 1。计算 x 的二进制:x = 69 = 64 + 4 + 1,8 位二进制为 0100 0101。这作为加法器的第一个输入端。计算 y 的按位取反:y = 38 = 32 + 4 + 2,8 位二进制为 0010 0110。对其进行按位取反(注意不是求负数补码,还没加 1),得到 1101 1001。这作为加法器的第二个输入端。最末位的那个 "+1":是通过直接将加法器的最低位进位输入 C₀ 置为 1 来实现的。整合起来,三个输入分别是:01000101,11011001,1,具体硬件设计如下图所示。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q25¶
速对表原值: A
详细解析标注: A
在原码除法不恢复余数法中,当余数为负时,商 0,然后将余数左移一位,加上除数的补码恢复余数,以便进行下一次运算,A 正确。记忆:“正一减,负零加”:若中间余数为正数,上商为 1,下次做减法;若中间余数为负数,上商为 0,下次做加法。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q26¶
速对表原值: C
详细解析标注: C
除法运算涉及多次比较、移位和减法操作,其电路实现通常比乘法运算电路更复杂,C 正确;乘法运算电路除了通过加法器和移位器间接实现,还可以直接实现乘法电路,A 错误;减法运算电路通过补码转换为加法运算,都通过加法器实现运算,计算机中没有独立的减法器。全加器通过适当的输入设置(如利用补码)可以参与减法运算,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q27¶
速对表原值: A
详细解析标注: A
将补码转换为真值进行运算, −231 / −2 = 230,A 正确。补充:32 位补码除法,除数为 FFFFFFFFH,被除数为 80000000H,结果是?将补码转换为真值进行运算,除数为 - 1,被除数为−231,商为231。32 位补码最大值为231 − 1,因此商超出范围,发生溢出
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q28¶
速对表原值: C
详细解析标注: C
对于补码整数除法,除数寄存器 Y 初始值为除数的补码,余数寄存器 R 初始值为被除数符号拓展高 32 位,余数/商寄存器 Q 初始值为被除数符号拓展的低 32 位,C 正确。进行 32 位原码定点小数除法时,已知被除数为 32 位原码,除数寄存器 Y 的初始值是(),余数寄存器 R 的初始值是(),余数/商寄存器 Q 的初始值是()。除数,被除数,32 位全 0。对于原码定点小数除法,除数寄存器 Y 初始值为除数的原码,余数寄存器 R 初始值为 32 位被除数,余数/商寄存器 Q 初始值全部补 0。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q29¶
速对表原值: C
详细解析标注: C
这题首先在 y 后面添 0 〔公式/符号见原页版面片段〕+1 ,然后从后往前看,每次看两位,只有出现〔公式/符号见原页版面片段〕+1 = 10,部分积 + −〔公式/符号见原页版面片段〕 补,可知出现两次。补码一位乘法(Booth 算法)运算规则如下。(1)符号位参与运算,运算的数均以补码表示。(2)被乘数一般取双符号位参与运算,部分积取双符号位,初值为 0,乘法取单符号位。(3)乘数末位增设附加位 〔公式/符号见原页版面片段〕+1,初值为 0。(4)根据 〔公式/符号见原页版面片段〕,〔公式/符号见原页版面片段〕+1 的取值来决定操作,Booth 算法规则详细见下表。(5)进行算数右移(6)按照上述算法进行 n+1 步操作,但第 n+1 步不再移位(共进行 n+1 次累加和 n 次右移),仅根据〔公式/符号见原页版面片段〕与〔公式/符号见原页版面片段〕+1的比较结果做相应的运算,运算过程如下图所示
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q30¶
速对表原值: B
详细解析标注: B
原码一位乘共进行 n 次加法和 n 次逻辑右移,即 4ns + 2ns =6 ns,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q31¶
速对表原值: D
详细解析标注: D
关于布斯补码一位乘法算法要点的描述中,错误的是 D 选项中的说法:“移位时,将进位位、部分积和乘积部分一起进行算术右移”。因为补码一位乘法的算法中,并没有专门的进位位,而符号位作为部分积的一部分进行处理。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q32¶
速对表原值: C
详细解析标注: C
A 正确,补码系统是计算机中带符号整数的主流表示方式,使用补码乘法器可以正确处理正负数相乘;
B 正确,浮点数尾数通常用原码表示,如 IEEE754,尾数相乘可用原码乘法部件进行运算。
C 错误,快速阵列乘法器中没有移位器,而是并行计算部分积,通过大量一位全加器构成全加器阵列累加求和,无需移位,如右图所示。时间复杂度总结:一位 booth 乘法:〔公式/符号见原页版面片段〕 〔公式/符号见原页版面片段〕2阵列乘法器:〔公式/符号见原页版面片段〕 〔公式/符号见原页版面片段〕两位 booth 乘法:位积个数减少一半 n/2,所以加法和移位次数都减少至 1/2,比booth 一位乘法快 1 倍。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q33¶
速对表原值: C
详细解析标注: C
对于两个"位无符号整数除法运算,最大的商为 111…11/000…01=111…11,显然,运算结果没有产生溢出。因此,两个 n 位无符号整数除法运算肯定不会溢出,无需通过得到最高位商(第 n 位商〔公式/符号见原页版面片段〕)来判断溢出,也即只要有"n 次循环执行“加/减”和“左移”操作,就能得到第 n-1~0位的 n 位商(〔公式/符号见原页版面片段〕−1~〔公式/符号见原页版面片段〕0)。因此,选项 C 的说法是错误的。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q34¶
速对表原值: C
详细解析标注: C
在用原码加、减交替法运算时,商的符号位是由除数和被除数的符号位异或来决定的,商的数值是由除数、被除数的绝对值通过加、减交替运算得的。由于除数、被除数取的都是绝对值,那么最终的余数应是正数。如果最后一步余数为负、则应将该余数加上除数,将余数恢复为正数,称为恢复余数,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q35¶
速对表原值: A
详细解析标注: A
无符号整数减法可先其都看作补码然后再转换为补码减法,〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 + 1 =〔公式/符号见原页版面片段〕 + −〔公式/符号见原页版面片段〕 补,-Y 的补码为 10101011B,故 X - Y = 10101010B + 10101011B = 01010101B,最高位进位舍去,结果为 01010101B,当然也可以直接用无符号整数列竖式做减法,只不过转换为补码会更加通用,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q36¶
速对表原值: B
详细解析标注: B
算术右移补符号位,原符号位为 1,移位后高位补 1,结果为 11011011,B 正确。
Q37¶
速对表原值: D
详细解析标注: D
对于补码运算 S=A+B,有如下几种判断方式方法一:OF=〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕方法二:OF=〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕−1,数值最高位进位和符号位进位异或方法三:采用双符号位
-
SIS2 =00:表示结果为正数,无滥出。
-
SIS2 =01:表不结果正溢出。
-
SIS2 = 10:表示结果负溢出。
-
SIS2 = 11:表示结果为负数,无溢出。
-
溢出逻辑判断表达式为 V= 〔公式/符号见原页版面片段〕1 ⊕ 〔公式/符号见原页版面片段〕2,若 V=0,表示无溢出。无论是带符号数还是无符号数,都有两种解题思路。方法一:进行机器运算,如选项 D,3BH+45H,最高位进位是 0,次高位进位是 1,所以OF=〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕−1 = 1。发生溢出。如果是做减法,〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 + 1,在判断标志位生成,用公式计算。机器不区分带符号数和无符 号数,只看生成的进位信息,按公式计算出 CF 和 OF。无论带符号数还是无符号数都是一样的运算规则。方法二:用真值判断。还是以 D 为例子,3BH 补码的真值是 59,45H 的补码真值是 69,59+69=128,而 8 位补码的范围是[-128, 127],128 超出了范围,所以溢出。此法要求对补码转真值比较熟练,以及 n 位补码或者无符号数的范围比较熟悉。综上,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q38¶
速对表原值: B
详细解析标注: B
结果为 80000000H,溢出(正数加 1 变负数),故 SF=1,OF=1,ZF=0,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q39¶
速对表原值: A
详细解析标注: A
对于补码减法运算,控制端 Sub 为 1,故低位进位输入位=Sub=1。[〔公式/符号见原页版面片段〕]补 =11110101,[〔公式/符号见原页版面片段〕]补 = 01111110, −〔公式/符号见原页版面片段〕 补 = 10000001 + 1,[〔公式/符号见原页版面片段〕]补 − 〔公式/符号见原页版面片段〕 补 = 〔公式/符号见原页版面片段〕 补+ −〔公式/符号见原页版面片段〕 补 =11110101 + 10000010 = 01110111,进位丢掉,参与运算的两个数均为 1,结果的符号位为 0,故溢出标志 OF 为 1,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q40¶
速对表原值: B
详细解析标注: B
尽管本题给出的是补码,但是在计算 CF 时,可以把 x 和 y 当无符号数看,容易知道机器数 x>y,所以对于无符号数,x-y>0,无借位所以 CF=0。在计算 OF 时,可以用异或运算来确定,〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕−1 ,注意本题的坑其实就在于确定 OF:如果用 〔公式/符号见原页版面片段〕 补 − 〔公式/符号见原页版面片段〕 补 = 〔公式/符号见原页版面片段〕 补 + −〔公式/符号见原页版面片段〕 补 =〔公式/符号见原页版面片段〕0000〔公式/符号见原页版面片段〕 + 80000000〔公式/符号见原页版面片段〕 = 1̄6〔公式/符号见原页版面片段〕0000, 〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕−1 = 0, 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕−1 = 1 ⊕ 0 = 1,这就掉入了 陷 阱 : 计 算 机 并 不 是 直 接 计 算 〔公式/符号见原页版面片段〕 补 + −〔公式/符号见原页版面片段〕 补 , 而 是 计 算 〔公式/符号见原页版面片段〕 补 + 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕0000〔公式/符号见原页版面片段〕 + 7〔公式/符号见原页版面片段〕 + 1 = 1̄6〔公式/符号见原页版面片段〕0000,这个过程〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕−1 = 1, 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕−1 = 1 ⊕ 1 = 0,才是符合答案的。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q41¶
速对表原值: D
详细解析标注: D
无符号数比较大小,通过两个操作数相减得到,若 A=B,则 CF = 0,ZF=1,若A 小于 B,A- B 有借位,CF=1. CF=1,ZF=0。因此,判定 A 小于等于 B 的条件是 CF+ZF=1,D 正确。补充:在无符号数情况下,各情况判定条件 F 如下:
-
等于:相减后结果为 0,即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕
-
大于:没有借位且相减后不为 0,即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⋅ 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕
-
小于:有借位且相减后不为 0,即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕·〔公式/符号见原页版面片段〕
-
大于等于:没有借位或相减后结果为 0,即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕
-
小于等于:有借位或相减后结果为 0,即〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕在带符号整数情况下,各情况判定条件 F 如下:
-
等于:相减后结果为 0,即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕
-
大于:结果不为 0,且不溢出时为正,溢出时为负。即〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⋅ 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕
-
小于:结果不为 0,且不溢出时为负,溢出时为正。即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 ⋅ 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕
-
大于等于:结果为 0,或者不溢出时为正,溢出时为负。即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕
-
小于等于:结果为 0,或者不溢出时为负,溢出时为正。即 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q42¶
速对表原值: B
详细解析标注: B
若〔公式/符号见原页版面片段〕 ≤ 〔公式/符号见原页版面片段〕
-
情况 1:〔公式/符号见原页版面片段〕 < 〔公式/符号见原页版面片段〕,即〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 < 0。 减法无溢出〔公式/符号见原页版面片段〕 = 0。〔公式/符号见原页版面片段〕 = 1 代表实际结果为负,此时〔公式/符号见原页版面片段〕 = 0 减法有溢出〔公式/符号见原页版面片段〕 = 1,那么负数溢出后一定为正或者 0,补码中负数溢出不可能是 0,比如 8位补码,要溢出到 0,必须是-128-128=-256,但是没有正数 128。所以〔公式/符号见原页版面片段〕 = 0,〔公式/符号见原页版面片段〕 = 0
-
情况 2:〔公式/符号见原页版面片段〕 == 〔公式/符号见原页版面片段〕,即〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 == 0。此时〔公式/符号见原页版面片段〕 = 0,〔公式/符号见原页版面片段〕 = 0,〔公式/符号见原页版面片段〕 = 1综上,一共三种情况(前两种是 A<B,第三种是 A==B)
-
〔公式/符号见原页版面片段〕 = 0, 〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕 = 0(无溢出且 A-B 结果为负)
-
〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕 = 0, 〔公式/符号见原页版面片段〕 = 0(负-正=正,溢出且溢出后为正)
-
〔公式/符号见原页版面片段〕 = 0, 〔公式/符号见原页版面片段〕 = 0, 〔公式/符号见原页版面片段〕 = 1(无溢出且结果为 0)因为在计算机中,ZF=1 时,表示结果全 0( 0 补)因为ZF=1,此时符号SF必须是0,又根据情况1的第二种子情况分析,OF也必须是0。所以ZF=1在计算机中就代表了〔公式/符号见原页版面片段〕 = 1,〔公式/符号见原页版面片段〕 = 0,〔公式/符号见原页版面片段〕 = 0,而前两种情况概括了 ZF=0 时的情况,用〔公式/符号见原页版面片段〕 ⊕ 〔公式/符号见原页版面片段〕表示,因此答案选 B。A、C、D 选项错误举例:A-B=正-负=负,A>B,此时结果〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕 = 1, 〔公式/符号见原页版面片段〕 = 0,但 A、C、D 选项结算结果都是1,不能作为判断条件,不符合题意。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q43¶
速对表原值: C
详细解析标注: C
8 位补码的范围:[-128, 127],x-y = 128 不能用 8 位补码表示出来,即发生溢出。判断溢出一般推荐两种方法。【方法一】用原码/补码的范围来判断。
- 应用场景:
①真值
②给出的二进制机器数好转真值,如:FFFFH
③乘除法无脑用真值
-
步骤:先写出 n 位原码/补码的范围,比如这题是判断补码溢出(OF),补码范围就是 −2〔公式/符号见原页版面片段〕−1 2〔公式/符号见原页版面片段〕−1 − 1用真值运算得出结果(十进制加减乘除)如果是给出机器数,那么原码运算或者判断 CF,就把机器数转原码真值进行运算如果是给出机器数,那么补码运算或者判断 OF,就把机器数转补码真值进行运算看结果是否超出表示范围如果是补码运算或者判断 OF,看是否超过补码范围,如这题很容易知道 C 不在范围内如果是原码运算或者判断 CF,看是否超过原码范围【方法二】机器数运算通过逻辑运算判断。
-
应用场景:给出的二进制机器数不好转真值,如:2345H
-
步骤: 加法:x + y 直接进行二进制竖式运算 减法:x − y = x + y + 1 判断: 无符号数溢出:CF = Cn ⊕ Cin = Cn ⊕ Sub 带符号数溢出:OF = Cn ⊕ Cn−1
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q44¶
速对表原值: C
详细解析标注: C
常用的溢出判断方法主要有三种:采用一个符号位、采用进位位和双符号位。采用一个符号位的溢出条件为,结果的符号位与操作数符号位不同。采用进位位判断溢出的条件为:结果的符号位和最高数位进位情况相反。采用双符号位的溢出条件:运算结果的两个符号位不同,故 C 正确。
Q45¶
速对表原值: C
详细解析标注: C
补码规格化尾数最高位为符号位,要求数值部分绝对值 ≥ 0.5。当尾数为正数时,补码与原码相同,最小的规格化正数尾数是 0.100⋯00(8 位,含符号位),即2−1;最大的规格化正数尾数是 0.111⋯11,其值为 1 − 2−7。故 C 正确。
注意:规格化数的负的尾数的范围是 −1 −1/2 。负数中虽然-1/2 绝对值大于等于 1/2,但是为了便于规格化判断电路设计(符号位和数值位最高位异或),不保留 1.100...,即-1/2。如果是模 r 原码或者补码表示尾数,尾数部分数值绝对值≥1/r(如模 4 原码就是 1/4,需要满足数值位最高两位不能全 0,补码负数也不能取到-1/r)。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q46¶
速对表原值: A
详细解析标注: A
尾数的数值位数为 16-1-5-1=9 位,尾数一共为 10 位,用补码表示,其可以表示的最大小数为 1 − 2−9。阶码一共 6 位,可以表示的最大值为25 − 1 = 31。故浮点数的最大值为231 × 1 − 2−9,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q47¶
速对表原值: C
详细解析标注: C
当阶码是以 8 为基数时,尾数 M 的数值绝对值大小≥1/8。即:1/8<=M<1 或 -1<=M<=-1/8,注意补码表示时,是取不到负数的-1/8 的,因为通常在补码判定规格化数时,采用最高位 3 位不能全部都是符号位的取反位,所以为了简化判断电路,通常 11,111000...不把他当作规格化数。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q48¶
速对表原值: C
详细解析标注: C
阶码 0110B,移码表示,其真值为 0110 - 1000 = -2(移码真值等于移码减去偏移量 2〔公式/符号见原页版面片段〕−1,n 为阶码位数,注意此处不是 IEEE 754 标准,不要误把偏移量减一)。尾数11010000B,补码且规格化(补码尾数规格化形式:符号位与最高数值位相反),其真值为 -0.0101B。所以浮点数真值为 -0.0101B× 2−2,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q49¶
速对表原值: B
详细解析标注: B
在 IEEE 754 标准浮点数表示中,当阶码全为 1,尾数全为 0 时,若符号位为0,则表示正无穷大;若符号位为 1,则表示负无穷大。本题符号位为 1,所以表示负无穷大,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q50¶
速对表原值: B
详细解析标注: B
在 IEEE 754 标准浮点数表示中,当阶码全为 1,尾数不全为 0 时,表示非数 NaN,即没有定义的数,B 正确。
-
阶码 0<E<255,表示规格化数,格式: −1 〔公式/符号见原页版面片段〕 × 1 .〔公式/符号见原页版面片段〕 × 2〔公式/符号见原页版面片段〕−127
-
阶码全 0,尾数全 0,表示±0;
-
阶码全 0,尾数不全为 0,非规格化数, −1 〔公式/符号见原页版面片段〕 × 0 .〔公式/符号见原页版面片段〕 × 2−126
-
阶码全 1,尾数全 0,表示±∞;
-
阶码全 1,尾数不全为 0,非数(NaN),尾数最高位为 1,不发异常通知,尾数最高位为 0,发异常通知(低电平有效),后 22 位表示异常类型。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q51¶
速对表原值: B
详细解析标注: B
浮点数运算对阶时,遵循小阶向大阶对齐,小阶的阶码增大,尾数相应要减小,那么尾数要右移在过程中可能会丢失低位数据,导致精度损失,B 正确;浮点数的表示范围取决于阶码和尾数的位数,A 错误; 规格化的浮点数补码表示的负数尾数数值最高位为 0,C 错误;浮点数加减法运算必须考虑符号位,因为需要符号决定 ALU 操作(如加或减)、结果符号以及运算过程,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q52¶
速对表原值: C
详细解析标注: C
IEEE 754 双精度浮点数使用 11 位指数,其偏移值为210 − 1 = 1023,C 正确。用这个题目提醒大家记一下 double 的编码格式,尾数部分是 64-11-1=52 位。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q53¶
速对表原值: C
详细解析标注: C
在 IEEE 754 标准中,单精度浮点数的非规格化数是指阶码为零的数,用于表示非常小的浮点数。这种数的阶码部分不存储隐含的“1”,与规格化数不同。单精度浮点数总共占 32位,其中 1 位符号位,8 位阶码位,23 位尾数位。对于非规格化数:
-
阶码部分全为 0(对应的是一个偏移量为 -126 的实际指数)。
-
尾数部分不存隐含的“1”,因此实际尾数为 0.f。最大非规格化数发生在尾数部分全为 1 的情况下,即:2−126 × 1 − 2−23这是可以表示的最大的非规格化浮点数。思考:最小非规格化正数是多少?在 IEEE 754 标准中,单精度浮点数的最小非规格化数是指阶码全为 0(表示指数为 -126)的情况下,尾数部分只有最低位为 1,其它位为 0。非规格化数的表示形式为:非规格化数 = ( − 1)符号位× 2−126 × 0.尾数最小非规格化数对应的是尾数部分全为 0,只有最低位为 1:最小非规格化数 = 1 × 2−126 × 2−23因此,最小的非规格化数为:最小非规格化数 = 2−126 × 2−23 = 2−149
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q54¶
速对表原值: A
详细解析标注: A
阶码 0<E<255,表示规格化数,格式: −1 〔公式/符号见原页版面片段〕 × 1 .〔公式/符号见原页版面片段〕 × 2〔公式/符号见原页版面片段〕−127。阶数最大值是254-127=127,尾数部分能表示的最大值是 2 − 2−23,故答案选 A。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q55¶
速对表原值: B
详细解析标注: B
规格化数的阶码机器数范围[1, 254],减去偏置 127,阶码真值范围[-126, 127]。且规 格 化 数 的 表 示 格 式 是 1.〔公式/符号见原页版面片段〕 × 2〔公式/符号见原页版面片段〕−127,〔公式/符号见原页版面片段〕 ∈ 0 1 − 2−23, 所 以 规 格 化 数 范 围 是 :2−126 2 − 2−23 ∗ 2127,即 2−126 2128 − 2104,负数是镜像区间 − 2128 − 2104 − 2−126非规格化数的阶码是全0,尾数 f不全为 0,表示格式为0.〔公式/符号见原页版面片段〕 × 2−126,〔公式/符号见原页版面片段〕 ∈ 0 1 − 2−23,所以非规划数 的 范 围 是 : 2−23 ∗ 2−126 1 − 2−23 ∗ 2−126 ,即 2−149 2−126 − 2−149, 负 数 是 镜 像 区 间− 2−126 − 2−149 − 2−149。题目问的非规划的最小负数,因此答案选 B。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q56¶
速对表原值: A
详细解析标注: A
非规格化数条件:阶码全 0 + 尾数非全 0,尾数有 23 位,隐含符号位固定为0,故共223种可能,但需排除全 0(全 0 表示 0),故数量为223 − 1,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q57¶
速对表原值: C
详细解析标注: C
因为将阶码部分的移码表示改为补码表示,并不会使数的表示范围发生变化,只会使阶码的表示形式发生变化,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q58¶
速对表原值: C
详细解析标注: C
浮点数的正负由尾数的正负符号决定,阶码的正负符号只影响数的绝对值的大小,A 错误;在并行加法器中,高位的进位依赖于低位,B 错误。为提高运算速度,运算器一般都采用并行加法器,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q59¶
速对表原值: D
详细解析标注: D
一个正数的补码和反码均和这个数的原码表示一样,A 错误。表示定点数时,若要求数值 0 在计算机中唯一地表示全 0,应使用补码表示,B 错误。01.1010 是一个正溢出数,C 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q60¶
速对表原值: D
详细解析标注: D
原码规格化后,正数为 01x...x 的形式,负数为 1.1x...x 的形式。补码规格化后,正数为 0.1x..x 的形式,负数为 1.0x...x 的形式,D 错误。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q61¶
速对表原值: A
详细解析标注: A
5 转换成二进制值为 101,在 IEEE754 中规格化表示为 1.01 × 22,阶数=127+2=129。故 IEEE754 编码为:01000000101000000000000000000000,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q62¶
速对表原值: C
详细解析标注: C
41A4C000 写成二进制是 0100 0001 1010 0100 1100 0000 0000 0000,所以阶码真值是 10000011-01111111=4,2 的 4 次方等于 16,所以该浮点数的十进制肯定大于 16,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q63¶
速对表原值: C
详细解析标注: C
阶码越大,数的范围越大;尾数越长,数的精度越⾼,C 正确。
Q64¶
速对表原值: C
详细解析标注: C
表示的数的个数跟总的状态数(离散状态个数)相关,同时 32 位,阶码和尾数长短不一,影响的是范围和精度,影响不了表示数的个数,在不考虑其他特殊情况时,总个数都是232个。
Q65¶
速对表原值: A
详细解析标注: A
float 的范围是 -3.4E+38~3.4E+38,比 int 的大,所以不会溢出,但是有可能因为精度问题出现舍入,A 错误。double 是双精度浮点数,范围>float>int,B 正确。double 变 float,范围变小、精度也变小,可能会溢出,也可能舍入,C 正确。double 转换为 int,只要不是整数就会舍入,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q66¶
速对表原值: A
详细解析标注: A
就近舍入中间值向两边舍入取决于尾数最后一位,若是 0,则直接截断尾数,若是 1,则要把尾数最后一位变成 0(偶数),所以采取进 1 的方式,也叫朝偶数舍入法。中间值左侧朝左侧舍入(一半误差为负),中间值右侧朝右侧舍入(一半误差为正),平均误差为 0。IEEE 754 默认采用就近舍入法。正向舍入平均误差为+0.5,负向舍入平均误差为-0.5,截断舍入不确定正负,但是误差绝对值是0.5,因此本题选 A。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q67¶
速对表原值: D
详细解析标注: D
浮点数加、减运算一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。第一步,对阶:第一个数〔公式/符号见原页版面片段〕 = 27 × 29/32,浮点数格式为 001110011101,第二个数〔公式/符号见原页版面片段〕 = 25 × 5/8,浮点数格式 001010010100。对阶原则是小阶向大阶看齐,My 右移两位,Ey+2,浮点数格式为001110000101第二步,尾数相加:Mz=Mx+My=0100010,浮点数格式为 001110100010。第三步,结果规格化:尾数需要进行一次右规,才能变成规格化数,Mz 右移一位,Ez+1,浮点数格式为 010000010001第四步,判溢出:由于阶码符号位不同,所以发生溢出,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q68¶
速对表原值: D
详细解析标注: D
△ 〔公式/符号见原页版面片段〕 补 = 〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 补= 〔公式/符号见原页版面片段〕 移 + − 〔公式/符号见原页版面片段〕 移 补。假定 △ 〔公式/符号见原页版面片段〕 移、 − △ 〔公式/符号见原页版面片段〕 移 补、△ 〔公式/符号见原页版面片段〕 补的最高有效位分别记为为〔公式/符号见原页版面片段〕、〔公式/符号见原页版面片段〕和〔公式/符号见原页版面片段〕,若△E≥128, △ 〔公式/符号见原页版面片段〕 补发生正溢出,此时〔公式/符号见原页版面片段〕为 1,而〔公式/符号见原页版面片段〕一定为正数,即〔公式/符号见原页版面片段〕 = 1,而 E_y 一定为负数,即 〔公式/符号见原页版面片段〕 移的符号位为 0,计算 − △ 〔公式/符号见原页版面片段〕 移 补时,对 〔公式/符号见原页版面片段〕 移的各位取反,末位加 1,从而得到〔公式/符号见原页版面片段〕 = 1,综合起来的逻辑表达式就是〔公式/符号见原页版面片段〕;若△E≤-129,则 △ 〔公式/符号见原页版面片段〕 补发生负溢出,此时〔公式/符号见原页版面片段〕 = 0,而 E_x 一定为负数,即〔公式/符号见原页版面片段〕 = 0,而 E_y 一定为正数,即 〔公式/符号见原页版面片段〕 移的符号位为1,计算 − △ 〔公式/符号见原页版面片段〕 移 补时,对 〔公式/符号见原页版面片段〕 移的各位取反,末位加1,从而得到〔公式/符号见原页版面片段〕 = 0,综合起来就是〔公式/符号见原页版面片段〕,因此选 D。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q69¶
速对表原值: C
详细解析标注: C
A 错误,IEEE754 里面,左规格化过程中,尾数增大阶码变小,当阶码变成 0 的时候,进入非规格化数的范围,只有小到非规格化数的也无法表示,才会被当作机器 0。非规格化数存在的意义就是逐级下溢。
B 错误,对阶是阶码小的往阶码大的对齐,最多等于原来的大阶码,所以阶码不可能发生溢出。
C 正确,右规划过程中,尾数变小阶码变大,有可能会导致阶码上溢。
D 错误,舍入操作可能会导致进位,进位如果传递到最高位,就需要右规一位,然后阶码+1,这时候阶码可能上溢。例如 1.111... 舍入成 10.000...,需要右规格化,阶码加 1,可能导致阶码上溢。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q70¶
速对表原值: C
详细解析标注: C
I 正确,定点数在运算(如乘法或除法)时可能产生多余的小数位,需要舍入来适应固定位数,因此舍入不仅适用于浮点数。II、III、IV 错误,在对阶和右规格化中需要舍入。V 正确,比如尾数溢出部分是 0,采用截断法,并不产生误差。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q71¶
速对表原值: B
详细解析标注: B
对于 IEEE754 单精度浮点数加减运算,若对阶时得到的两个阶码之差的绝对值∣∆〔公式/符号见原页版面片段〕∣等于 24,则说明阶小的那个数的尾数需要右移 24 位,进行尾数加减运算时,虽然其结果的前 24位直接取阶大的那个数的相应位,但是由于可以保留附加位,阶小的那个数右移后的尾数可能会在舍入时向前面一位进 1。例 如 1.00...01 × 21 + 1.10...00 × 2−23 = 1.00...01 × 21 + 0.00...00(11) × 21 = 1.00...01(11) × 21。其中 0.00..00(11)后面两个 11 是附加位,结果 1.00.01(11)中后两位也是附加位(小数点 23位后的 24,25 位),最终需要根据这两位进行舍入,舍入后最终答案是 1.00..10×2 其中若两个阶码之差的绝对值∣∆〔公式/符号见原页版面片段〕∣等于 25,则保留的附加位中,虽左边的一位一定是 0,采用就近舍入时,完全被丢弃。
B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q72¶
速对表原值: B
详细解析标注: B
本 题 主 要 考 察 float 的 下 溢 问 题 。〔公式/符号见原页版面片段〕 =33 32 × 2−126 , 〔公式/符号见原页版面片段〕 = 1 × 2−126 , 〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 =1 32 × 2−126,此时浮点数是⾮规格化浮点数,即 float 的阶码变为全 0,隐藏位由 1 变成 0。结果为 00040000H。float 阶码全 0 就是为了在下溢的时候仍能参加运算,并不是直接当成 0 处理,所以 d=c+b=a-b+b=a,结果为 true,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q73¶
速对表原值: C
详细解析标注: C
对阶从小到大,7 到 9,尾数右移 2 位,相当于小数点左移 2 位,C 正确。
注意:题干中问的是小数点移位的次数,而不是尾数移位的次数。
Q74¶
速对表原值: A
详细解析标注: A
先 将 两 数 化 为 数 学 表 达 式 。 x 的 阶 码 为 10000110B=134 , 尾 数 为1.01100100010〔公式/符号见原页版面片段〕 , 那 么 x= 1.01100100010〔公式/符号见原页版面片段〕 × 2134−127 = 1.01100100010〔公式/符号见原页版面片段〕 × 27。 y 的 阶 码 为10000010B=130,尾数为 -1.10011B,那么 y=−1.10011〔公式/符号见原页版面片段〕 × 2130−127 =− 1.10011〔公式/符号见原页版面片段〕 × 23。接着进行对阶,将小阶向大阶对齐,此时 y=−0.000110011 × 27。接着对尾数进行运算,x-y=1.01100100010+0.000110011=1.0111110111,经判断,此时不需要规格化和舍入,阶码也没有进位,不溢出。故 x-y= 1.0111110111 × 27,转化为 IEEE754 格式为433EE000H,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q75¶
速对表原值: A
详细解析标注: A
对阶原则是小阶向大阶看齐,Y 的阶码为 3,X 的阶码为 5,Y 的阶码要变为5,阶码增加 2,尾数右移 2 位,Y = 23 × −0.1010〔公式/符号见原页版面片段〕 变为 25 × ( − 0.001010〔公式/符号见原页版面片段〕),A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q76¶
速对表原值: C
详细解析标注: C
加法过程如下:
-
对阶:[∆〔公式/符号见原页版面片段〕]补 = [〔公式/符号见原页版面片段〕]移 + [ − [〔公式/符号见原页版面片段〕]移]补(〔公式/符号见原页版面片段〕2) = 10100000 + 01111000 = 00011000,x 的阶码比 y 大 24,小阶向大阶对齐,y 的尾数〔公式/符号见原页版面片段〕右移 24 位,数值高位补 0,隐藏位右移到小数点后面,最后移出的位保留两位附加位,即〔公式/符号见原页版面片段〕 = 0.000...00 10 (括号内表示移到附加位上的两位)
-
尾数相加:〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 = 1.010100...01 + 0.000...00 10 = 1.010100...01 10
-
规格化:已经是规格化,无需操作
-
舍入:附加位上为(10),为中间数,就近舍入,需要向偶数对齐,即看尾数最后一位是否为 1: 尾数最后 1bit 要是 1,表示是奇数,需要进 1 变偶 尾数最后 1bit 要是 0,已经是偶数,直接舍弃。本题最后一位是 1,需要进位,舍入后尾数为 1.010100...10
-
溢出判断:舍入后,仍为规格化数,阶码无溢出。由以上过程,I、III 正确,II 错误。我们可以看到,y 的真值为 1.0 × 29 = 512,舍入后,进位的原因导致29变成了210,所以实际结果为〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 = 〔公式/符号见原页版面片段〕 + 〔公式/符号见原页版面片段〕 − 〔公式/符号见原页版面片段〕 = 210 = 1024 ! = 512,IV 为 false。本题答案为 C。思考:y=511的话,即机器数为43FF8000H,z-x==y为真吗?(还是false,此时附加位为(01),直接舍去,z-x=0 了),本题说明 float 两数相加时,阶码之差[ △ 〔公式/符号见原页版面片段〕] ≥ 25,较小数可以直接忽略。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

PDF 字形回源提示(非原文)
原 PDF 的部分数学字体没有 Unicode 映射;可搜索文本保留了明确占位,公式和符号以本题的原页片段为准。
Q77¶
速对表原值: D
详细解析标注: D
x 的机器数形式为 0001FFFAH,其长度 32 位。将长的数赋给短的数,短的数将会从低位开始保存,超出长度的部分直接丢弃。故 v 的机器数形式为 FFFA,计算机中的数据使用补码形式保存,将其转换为原码后为 8006,故 y=-6,D 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q78¶
速对表原值: C
详细解析标注: C
f 是含有小数位的,(int)f 会导致小数位的丢失。
Q79¶
速对表原值: C
详细解析标注: C
首先 char c = -1 机器码为 FFH。由 char 类型转换为 unsigned int 类型时,符号扩展填充高位 1 至 32 位:FFFF FFFFH,再解释为无符号数,得到 u = 232 − 1,转换为二进制是 1.1111111111111111111111111111111× 231。由 unsigned int 类型转换为 float 类型时,符号位为 0,阶码为 31,移码表示为 1001 1110,尾数部分,因为 IEEE 754 单精度标准中可表示精度位 24 位(23 位尾数 + 1 位隐藏位),小于 u 中的32 位,故需要进行舍入处理。c 语言中默认舍入规则是向最接近的偶数舍入,即
-
如果要舍弃的部分的最高位为 0,则直接截断。
-
如果要舍弃的部分的最高位为 1,且剩余部分不为 0,则进位。
-
如果要舍弃的部分的最高位为 1,且剩余部分为 0,则看保留部分的最低位:如果为偶数,即为 0,则直接截断,如果为奇数,即为 1,则进位。对于本题要舍弃的部分即 u 中 32 位补码的后 8 位,最高位为 1 且剩余部分不为 0,故保留前24 位并进位。即 1111 1111 1111 1111 1111 1111 + 1 得到 1 0000 0000 0000 0000 共 25 位,需要进行右规并继续舍入,右归时阶码加 1,得到阶码为 1001 1111,舍入时,舍弃的部分为最后一位,最高位为0,故直接截断,从而结果为 0 1001 1111 (1)000 0000 0000 0000 0000 0000,即 f =232。最后由 float 类型转换为 double 类型,double 的精度和范围都比 float 大,所以真值不变,i =232,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q80¶
速对表原值: A
详细解析标注: A
short s = 0x7FFF 即 215 − 1 = 32767,转换为 double 时,数值在双精度范围内可精确表示,d 的值仍为 32767。double 的 32767 转换为 int 时直接截断小数部分,结果为 32767,A 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q81¶
速对表原值: B
详细解析标注: B
数据对齐存放可以使 CPU 在存取数据时,以更高效的方式访问内存,减少内存访问次数,提高数据存取速度;虽然有时可能节省部分空间,但主要目的是提升速度,B 正确。
Q82¶
速对表原值: B
详细解析标注: B
short 类型变量 a 占 2 字节,为满足 4 字节对齐,a 后需填充 2 字节;int 类型变量 b 占 4 字节,所以结构体大小 = 2 + 2 + 4 = 8 字节,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q83¶
速对表原值: C
详细解析标注: C
操作码:001010(二进制),rs(源寄存器):R [6] → 编号 6H(二进制0110),rd(目标寄存器):R [5] →编号 5H(二进制 0101),imm(立即数):48 →二进制补码 0000 00000011 0000(18 位,正数补码与原码相同),拼接后为 001010011001 010000000000 00110000B,即为29940030H。又因为按照小端方式存储,故在内存中存储的机器码是30009429H,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q84¶
速对表原值: B
详细解析标注: B
−4.25 × 217转换成机器数为:C9080000H,按小端方式存放,则存储单元FFFFC002H 中存放的是 08H,B 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q85¶
速对表原值: C
详细解析标注: C
float 数 据 类 型 占 4 字 节 , 数 组 中 最 后 一 个 元 素 的 地 址 为 :C0001000H+99×4=C000118CH,由于采用小端方式存储,MSB 在内存的最高地址处,也就是C000118FH,C 正确。
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q86¶
速对表原值: B
详细解析标注: B
边界对齐是计算机系统中一种数据存储原则,要求数据在内存中存储的起始地址与其数据类型的大小成倍数关系,B 正确。这样虽然浪费了一些存储空间,但可提高取指令和取数的速度。边界对齐方式相对边界不对齐方式是一种空间换时间的思想。精简指令系统计算机(RISC)通常采用边界对齐方式,因为对齐方式取指令时间相同,因此能适应指令流水。
Q87¶
速对表原值: C
详细解析标注: C
结构体变量的对齐规则
-
整个结构体变量的对齐方式与其中对齐方式最严格的成员相同。
-
结构体成员在满足其对齐方式的条件下,取最小可用位置作为成员在结构体中的偏移量。
-
结构体大小应当为对齐边界长度的整数倍(结构体的大小必须是其最大成员大小的倍数,以保证结构体在数组中也是对齐排放。)
-
如果嵌套了结构体,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是最大对齐数(含嵌套结构体的对齐数)的整数倍。回到本题,int 型数据按 4B 对齐,char 型数据按 1B 对齐,short 型按 2B对齐,而 B 结构体由于内部包含 int、char 和 short,所以应该按照对齐规则最严格的 int 对齐规则来对齐,即按 4B 对齐,且结构体 B 的大小也是 4 的倍数,为 12B。结构体 A 中包含 B,A 的对齐宽度是成员变量的最大对齐宽度,也就是结构体 B 的对齐宽度 4B(对齐宽度是 B 中按 int 对齐的 4B,不是 B 的大小,注意区分)。所以整个排布如下图所示。e 的地址为 C010H。其他一些举例:
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q88¶
速对表原值: D
详细解析标注: D
C 语言数据的边界对齐规则如下:结构体对齐总结:
-
成员变量为 0 的结构体占 1B
-
结构体本身对齐按最大成员变量的宽度对齐
-
内部成员本身按自己的数据类型对齐
-
结构体的大小是对齐宽度的整数倍本题结构体成员排列如下,结构体大小必须是 int 的整数倍也即 12B。思考:若 int 和 char 交换位置,则结构体大小是多少? 8
原页版面片段(公式/表图/电路/代码/数据通路以此为准)

Q89¶
速对表原值: B
详细解析标注: B
C 语言类型转换规则:
-
同长度无符号数和有符号数转换,遵循机器数不变转变成对应真值,即补码转补码真值,无符号数转无符号数真值。
-
短转长,看短的带不带符号。短是带符号就符号扩展,短是无符号就 0 扩展到长的位数,再根据长的变量类型转变成对应真值,这道题短的就是无符号数,所以 0 扩展就行了。
-
长转短,直接截断思考 1:以下代码 y 的机器数是多少? short x= 0xABCD; unsigned int y=x;(短的是带符号数,就进行符号扩展,符号位是 1,高位补 1,答案为 FFFFABCDH)
原页版面片段(公式/表图/电路/代码/数据通路以此为准)
