计算机组成原理第六版部分习题答案
[-x]补”为0.001001,其符号位为0,说明-x为正数,正数的原码、反码、补码相等,则“[-x]原”为0.001001,则真值-x为+0.001001,则真值x为-0.001001,或者-0.140625。“[-x]补”为001001,其符号位为0,说明-x为正数,正数的原码、反码、补码相等,则“[-x]原”为001001,则真值-x为+01001,则真值x为-01001,或者-9。因此,符
[教材P60-61→1(2,3), 3, 6(3), 8(2)]
【1】(2).写出下列各整数的原码、反码、补码表示(用8位二进制)。其中MSB是最高位(符号位),LSB是最低位。(2). -128 (3). -127
【解】在八位二进制下,-128不能用原码或反码表示,反码只能表示0到127,-0到-127;
(2). -128 = (-100000000)2 [ -128]8位原码 = 无; [ -128] 8位反码 = 无; [ -128] 8位补码 = 10000000;
(3). -127 = (-1111111)2
[ -127]原码 = 11111111;[ -127]反码 = 10000000;[ -127]补码 = 10000001;
【3】有一个字长位32位的浮点数,符号位1位;阶码8位,用移码表示;位数23位,用补码表示;基数为2。请写出:(1).最大数的二进制表示;(2).最小数的二进制表示;(3).规格化数所能表示的范围。
【解】
(1)最大数的二进制表示:E = 11111111; Ms = 0,M = 11…1(23位全1)
即:0 111111 11111111111111111111111 = 2127*(1-2-23)
(2)最小数的二进制表示:E = 11111111; Ms = 0,M = 00…0(23位全0)
即:1 111111 00000000000000000000000= 2127*(-1)
(3)规格化数所能表示的范围:
正最大:E = 11111111; Ms = 0, M = 11…1(23位全1) = 2127*(1-2-23);
正最小:E = 00000000; Ms = 0, M = 10…0(低22位全0) = 2-128*(2-1);
负最大:E = 00000000; Ms = 1, M = 01…1(低22位全1) = - 2-128*(2-1+2-23);
负最小:E = 11111111; Ms = 1, M = 00…0(低23位全0) = - 2127;
规格化数所能表示的范围集合:[- 2127, - 2-128*(2-1+2-23) ] U [2-128*(2-1), 2127*(1-2-23)];
【6】已知x和y,用变形补码计算x-y,同时支出结果是否溢出
(3) x=11011;y=-10011
【解】[x]补 = 00 11011;[y]补 = 11 01101;[-y]补 = 00 10011;
[x]补 = 00 11011
[-y]补 = 00 10011
[x-y]补= 01 01110 双符号位为01,结果为正溢出,x-y = 01110;
【8】用原码阵列除法器计算x÷y(先乘一个比例因子变成小数)
(2) x = (-01011)2 = (-11)10; y =(11001)2 = (25)10; (这是整数除法)
x = (-01011)2 = (-0.01011*25)2 ;y = (11001)2 = (0.11001*25)2
【解】[|x|]补 = 0 01011;[|y|]补 = 0 11001; [-|y|]补 = 1 00111;
被除数 X 0 0101100000 → 右补5个0(被除数数值位扩展一倍长度)
+[-|y|]补 1 00111
余数为 1 1001000000 → q0 = 0
+[|y|]补 0 011001
余数为 1 1111010000 → q1 = 0
+[|y|]补 0 0011001
余数为 0 0010011000 → q2 = 1
+[-|y|]补 1 11100111
余数为 0 0000110100 → q3 = 1
+[-|y|]补 1 1 11100111
余数为 0 0000000010 → q4 = 1
+[-|y|]补 1 1 111100111
余数为 1 1111101001 → q5 = 0
+[|y|]补 0 0000 11001 【不够减,则+[|y|]补还原;若够减,则省略此步】
余数为 00000000010
所以有:x÷y = - 0.01110 余数为:[0.00010]补 = [0.00010]原 = 0.00010
【注】若为小数除法,则余数为:[0.0000000010]补 = [0.0000000010]原
第2.2节、第3次书面作业[教材P61→9(1), 10(2), 11(2), 12(2), 16(较高要求)]
【9】设阶码3位,位数6位,按浮点运算方法,完成下列取值的[x+y],[x-y]计算:
(1). x = 2-011×0.100101, y = 2-010×(-0.011110);
【解】 [x]浮 = 11 101, 0.100101; [y]浮 = 11 110, -0.011110; Ex – Ey = 11 101 + 00 010 =11 111
[x]浮 = 11 110, 00.010010(1); [y]浮 = 11 110, 11.100010; [-y]浮 = 11 110, 00. 011110;
[x+y] 00.010010(1)
+ 11.100010
11.110100(1) 尾数规格化后:1.010010 阶码11 100
x + y = 1.010010×2-4 = -0.101110×2-4;
[x-y] 00.010010(1)
+ 00.011110
00.110000(1) 尾数规格化后:0.110000 阶码11 110
x - y = 0.110001×2-2 ;
【10】设阶码3位,位数6位,按浮点运算方法,计算下列各式:
(2).
【解】 Ex = 11 110, Mx = 0.011010; Ey = 00 011, My = 0.111100;
Ez = Ex – Ex = 11 110 + 11 101 = 11 011 = -5;
[Mx]补 = 00.011010; [My]补 = 00.111100; [-My]补 = 11.000100;
被除数 X 00 011010000000 → 右补6个0(被除数数值位扩展一倍长度)
+[-My]补 11 000100
余数为 11 011110000000 → q0 = 0
+[ My]补 00 0111100
余数为 11 111100000000 → q1 = 0
+[ My]补 00 00111100
余数为 00 001011000000 → q2 = 1
+[-My]补 11.1110001000
余数为 00 000011100000 → q3 = 1
+[-My]补 11 1111000100
余数为 11 111111110000 → q4 = 0
+[ My]补 00 00000111100
余数为 00 000001101000 → q5 = 1
+[-My]补 11 111111000100
余数为 00 000000101100 → q6 = 1
商 = 0.0110112-5 = 0. 1101102-6;余数 = 0. 1011002-6;
【11】某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请分别按下列两种方式写出的逻辑表达式:
(1).串行进位方式; (2).并行进位方式;
【解】 4位加法器如下图:
Ci = A i B i + A i C i-1 + B i C i-1 = A i B i + (A i + B i)C i-1= A i B i +(A i⊕B i)C i-1
(1). 串行进位方式: 记 Gi = Ai Bi、Pi = Ai⊕Bi = Ai+Bi ; 其中 i∈{1,2,3,4};
C1 = G1 + P1C0 ; C2 = G2 + P2C1 ; C3 = G3 + P3C2 ; C4 = G4 + P4C3 ;
(2). 并行进位方式: 记 Gi = Ai Bi、Pi = Ai⊕Bi = Ai+Bi ; 其中 i∈{1,2,3,4};
C1 = G1 + P1C0 ;
C2 = G2 + P2G1 + P2 P1C0;
C3 = G3 + P3G2 + P3 P2G1+ P3 P2 P1C0;
C4 = G4 + P4G3 + P4 P3G2+ P4P3 P2G1+ P4P3 P2 P1C0;
【12】用IEEE32位浮点数格式表示如下的数: (2). -1.5;
【解】 IEEE32位浮点数 默认:尾数用原码表示,指数用非标准移码(E = e + 127)表示;
[-1.5]10 = [-1.1×20]2; S = 1, e = 0, E = (e + 127)10 = (0 + 127)10 = (127)10 = (01111111)2;
M = 10000000000000000000000;
-1.5的IEEE32位浮点数格式为: (1 01111111 10000000000000000000000)2 = (BFC00000)16;
【16】设计一个4位ALU,完成加、减、取反、取补、逻辑乘、逻辑加、传送、加1等8种运算功能。
【解】 设计思想:因为有8种运算,所以控制信号采用3位,S0,S,S2,加减操作利用4位补码加减法运算器;加1可以单独设计电路实现,也可将加数强制为1,再利用加减法器实现;传送操作可将加数强制为0,再利用加减法器实现;逻辑乘、逻辑加和取反操作可可设计单独的逻辑运算电路,用与门和反相器实现;取补电路单独设计(参见教材图2.6);
第2.3节、课后补充练习
【1】真值x=+0101,原码为 ,反码为 ,补码为 。【答案】 00101; 00101; 00101;
【2】真值y=-0101,原码为 ,反码为 ,补码为 。【答案】 10101; 11010; 11011;
【3】真值x=+0.0101,原码为 ,反码为 ,补码为 。【答案】 0.0101; 0.0101; 0.0101;
【4】真值y=-0.0101,原码为 ,反码为 ,补码为 。【答案】 1.0101; 1.1010; 1.1011;
【解析】小数点不存储,仅便于读者理解。
【5】 数的原码、反码、补码相同,符号位都为 。 【答案】正; 0;
【6】 数的原码、反码、补码各不相同,但符号位相同,都为 。 【答案】负; 1;
【7】按位 ,末位加 ,可以实现求 补码。
【答案】 取反; 1; 相反数;【8】“[x]补”为110011,通过方法1,请给出计算过程,求真值x。
【答案】 x=-1×25+1×24+0×23+0×22+1×21+1×20=-13。
【9】“[x]补”为1.001,通过方法1,请给出计算过程,求真值x。
【答案】 x=-1+0×2-(3-2)+0×2-(3-1)+1×2-(3-0)=-0.875
【10】“[x]补”为110111,通过方法2,请给出计算过程,求真值x。
【答案】 “[x]补”为110111,包括符号位所有位按位取反得到001000,末位加1得到001001,即得到“[-x]补”为001001。“[-x]补”为001001,其符号位为0,说明-x为正数,正数的原码、反码、补码相等,则“[-x]原”为001001,则真值-x为+01001,则真值x为-01001,或者-9。
【11】计算机内的减法是用 来实现的。 【答案】C
(A) 将被减数加到减数中;(B) 从被减数中减去减数;(C) 补码相加;(D) 从减数中减去被减数;
【解析】为了方便加减运算,数据在计算机内部采用补码表示,且[A]补-[B]补=[A]补+[-B]补。
【12】补码的加减法是指 。 【答案】C
(A) 操作数用补码表示,两数相加减,符号位单独处理,减法用加法代替;
(B) 操作数用补码表示,符号位和数值位一起参加运算,结果的符号与加减相同;
(C) 操作数用补码表示,连同符号位直接相加减,减某数用加某数负数的补码代替,结果的符号在运算中形成;
(D) 操作数用补码表示,由数符决定两数的操作,符号位单独处理;
【解析】在补码的加减法中,操作数用补码表示,符号位参与运算,减法转换成加法进行 运算,在运算中形成运算结果的符号位。
【13】减法通过加法实现,借助 实现。 【答案】D
(A) 真值; (B) 原码; (C) 反码; (D) 补码;
【14】与单符号位相比,双符号位的两个符号位进行 运算,CPU能够快速判断是否发生 。
【答案】异或; 溢出;
【15】双符号位, 表示正数, 表示负数。 【答案】00; 11;
【16】双符号数据“[x]补”为110011,则真值x为 。 【答案】 -13; -1101;
【17】双符号位 和 表示计算机结果正确。 【答案】00; 11;
【18】双符号位 表示正溢出, 表示负溢出。 【答案】 01; 10;
【19】组合电路设计思路 。 【答案】A
(A) 真值表,逻辑表达式,化简表达式,得出电路;
(B) 逻辑表达式,真值表,化简表达式,得出电路;
(C) 逻辑表达式,化简表达式,真值表,得出电路;
(D) 逻辑表达式,化简表达式,得出电路
【解析】首先判断电路的输入个数和输出个数,根据电路功能得到真值表,根据真值表写出逻辑表达式,化简逻辑表达式,根据最简逻辑表达式得到最简电路。
【20】在组合电路设计当中,化简逻辑表达式的作用 。 【答案】B
(A) 提高电路复杂度; (B) 简化电路设计,得到最简电路,降低生产成本;
(C) 丰富电路功能; (D) 提高电路频率;
【21】在补码加减法电路当中,双符号位的两个符号,作为 门电路的输入,输出结果可以判断计算机是否发生溢出。 【答案】D
(A) 与; (B) 或; (C) 同或; (D) 异或;
【22】补码加减法电路,其减法功能,通过 控制。 【答案】A
(A) 方式控制M; (B) 异或门; (C) 符号位; (D) 溢出;
【解析】① 当M=0,做加法运算;
② 当M=1,进行减法运算。M分别与B0、B1、B2、B3…异或,异或门输出变成了B0、B1、B2、B3…,即对[B]补各位取反。M作为C0,即末位加1。[A]补+[B]补变[A]补+[-B]补,实现求[A-B]补;
【23】在补码加减法电路当中,当M= 表示进行加法,M= 表示进行减法。 【答案】0; 1;
【24】计算机内的信息都是以 形式表示的。 【答案】 B
(A) BCD 码; (B) 二进制码; (C) 字母码; (D) 符号码;
【解析】考虑到使电子器件容易实现,因此计算机内的信息都以二进制形式表示的。
【25】在计算机中信息存储的最小单位是 。 【答案】A
(A) 二进制位0或1; (B) 字节; (C) 字; (D) 字长;
【26】若[x]补=1.1101010,则[x]原= 。 【答案】B
(A) 1.0010101; (B) 1.0010110; (C) 0.0010110; (D) 0.1101010;
【解析】x 为负数,其原码为符号位不变,数据位变反加 1,即 0010101+1=0010110。
【27】在补码的加减法中,用两位符号位判断溢出,两位符号位 S1S2=10 时,表示 。 【答案】C
(A) 结果为正数,无溢出; (B) 结果正溢出; (C) 结果负溢出; (D) 结果为负数,无溢出;
【28】在补码的加减法中,用两位符号位判断溢出,两位符号位 S1S2=01 时,表示 。【答案】B
(A) 结果为正数,无溢出; (B) 结果正溢出; (C) 结果负溢出; (D) 结果为负数,无溢出;
【29】在补码加法运算中, 时表示数据溢出。 【答案】B
(A) 双符号位相同; (B) 双符号位不同; (C) 两正数相加; (D) 两负数相加;
【解析】在补码加法运算中,若采用两位符号法来判断溢出,则当两个符号位不同时表示溢出。
【30】两补码相加,采用 1 位符号位,则当 时,表示结果溢出。 【答案】D
(A) 最高位有进位; (B) 最高位进位和次高位进位的异或结果为 0;
(C) 最高位为 1; (D) 最高位进位和次高位进位的异或结果为 1;
【解析】这是采用进位判断法来判断是否溢出,其规则是若最高位有进位,且和次高位进 位异或结果为 1,表示结果溢出,若异或结果为 0,表示结果无溢出。
【31】如果 x 为负数,由[x]补求[-x]补是 。 【答案】D
(A) [x]补各值保持不变; (B) [x]补符号位变反,其他各位不变;
(C) [x]补除符号位外,各位变反,末位加 1;(D) [x]补连同符号位一起各位变反,末位加 1;
【解析】求变补即[-x]补的规则是[x]补连同符号位一起各位变反,末位加 1。
【32】x=+100101,y=+110011,计算x-y。在计算过程中,请注意通过使用相关技术,判断是否发生溢出。(本题可纸质作答,拍照上传答案)
【答案】
【33】如图所示,请详细说明,如何实现加法运算?如何实现减法运算?如何判断溢出?
【答案】
① [A-B]补=[A]补+[-B]补;
② 当M=0,做加法运算;
③ 当M=1,进行减法运算。M分别与B0、B1、B2、B3…异或,异或门输出变成了B0的逆、B1的逆、B2的逆、B3的逆…,即对[B]补各位取反。M作为C0,即末位加1。
[A]补+[B]补变成[A]补+[-B]补,实现求[A-B]补;
【34】“[x]补”为1.110111,通过方法2,请给出计算过程,求真值x。
【答案】 “[x]补”为1.110111,包括符号位所有位按位取反得到0.001000,末位加1得到0.001001,即得到“[-x]补”为0.001001。“[-x]补”为0.001001,其符号位为0,说明-x为正数,正数的原码、反码、补码相等,则“[-x]原”为0.001001,则真值-x为+0.001001,则真值x为-0.001001,或者-0.140625。
【35】译码器可以实现多选 。 【答案】 1;一;
【解析】译码器,有多个输出,同一时刻,某个时刻,只有一个输出是有效的,从而实现多选1。
【36】译码器如果有m个输入, 个输出。 【答案】A
(A) 2的m次方;(B) 2的n次方;(C) m;(D) n;
【解析】译码器输入和输出之间,成以2为底的指数关系;
【37】译码器如果有m个输出,则有 个输入。 【答案】A
(A) Log2m;(B) Log2n;(C) 2m;(D) 2*m;
【解析】译码器输入个数为Log2m,则输出为2的Log2m次方,即m个。
【38】2-4译码器, 个输入, 个输出。 【答案】 2; 4;
【39】m—n译码器, 个输入, 个输出。 【答案】m; n;
【解析】m表示输入的个数,n表示输出的个数。可以有1-2译码器,2-4译码器,3-8译码器,4-16译码器......,根据需要自由设计,分别实现2选1,4选1,8选1,16选1......。
第2.4节、考研训练
【1】将二进制数10110101111001分别转换为八进制数和十六进制数
【答案】 010 110 101 111 001 → 26571Q
0010 1101 0111 1001 → 2D79H
【2】将二进制数 1101.1 转换成十进制数
【答案】 (1101.1)2=1×23+1×22+0×21+1×20+1×2-1=(13.5)10
【3】将十进制数(12.75)10转换为二进制数
【答案】整数部分:
所以整数部分 12=(1100)2
小数部分:
所以小数部分 0.75=(11)2;
对于小数,如果在求解的过程中一直求不到 0, 也就是无法求的精确的结果, 此时,只需要求解到指定精度的值就可以。
故得到转换结果: (12.75)10 = (1100.11)2
【4】将十进制数(354)10用 8421 码进行编码
【答案】需要一位化为 4 位,所以3→(0011)8421,5→(0101)8421,4→(0100)8421,
所以结果为 (354)10 = (0011 0101 0100)8421;
【注释】BCD 码:
BCD(Binary-Coded Decimal),称 BCD 码或二转十进制代码, 亦称二进码十进数,是一种二进制的数字编码形式, 即是用二进制编码的十进制代码。
当一个十进制数使用二进制进行编码时, 因为 23=8, 24=16, 而十进制数有 0~9 共10 个数, 所以 3 位二进制数不够编码, 只能使用 4 位二进制数来编码, 因为 4 位二进制数可以组合 16 种代码, 所以会多出 16-10=6 位编码状态, 称这 6 种状态为冗余状态。采用这种 BCD 编码方法的目的是在十进制转换为二进制的时候能够更加方便快速。常用到的几种 BCD 码有如下几种:
- 8421 码:
8421 码又称为 NBCD 码, 其主要特点是:
①它是一种有权码, 四位二进制代码的位权从高到低分别为 8、 4、 2、 1。
②简单直观。 每个代码与它所代表的十进制数之间符合二进制数和十进制数相互转换的规则。
③不允许出现 1010~1111。 这 6 个代码在 8421 码中是非法码。
(1)十进制数用 8421 码进行编码
该编码方法属于一种有权码, 如果设各位的数值分别为 a3,a2,a1,a0,则其从高位到低位分别对应的权值为8, 4, 2, 1, 所以可以任意一个十进制数码 x 可以进行如下表示:(x)10=8a3+4a2+2a1+1a0 。 比如十进制数码7 可以表示为(7)10=8×0+4×1+2×1+1×1=(0111)8421.
(2) 8421 码的加减运算
由于编码是将每个十进制数用一组 4 位二进制数来表示, 若将这种 BCD 码直接交计算机去运算, 由于计算机总是把数当作二进制数来运算, 所以结果可能会出错。 解决办法: 对二进制加法运算的结果采用“加 6 修正”((6)10=(0110)8421) ,这种修正称为 BCD 调整。 即将二进制加法运算的结果修正为 8421 码加法运算的结果,两个两位 8421 码表示的数相加时,对二进制加法运算结果采用修正规则进行修正, 这就是多出的 6 位冗余状态码的用处。
- 2421 码:
2421 类似于 8421 码, 只是各位权值从高到低为 2、 4、 2、 1。
特点: ①它是有权码; ②对 9 的自补码(取反得补码) ; ③0101~1010 为非法码。
- 余三码:
余三码是在 8421 码的基础上加上(0011)2 形成的, 因为每个数都多余 3, 故称为余 3码。
特点: ①它是一种无权码; ②是一种对 9 的自补码; ③0000~0010、 1101~1111 为非法码。
【5】下列各种数制的数中, 最大的数是() 【答案】B
(A)(101001)2 (B)(101001)BCD (C)(52)8 (D)(233)16
【6】十进制数 9 的余 3 码为多少?
【答案】 十进制数9的8421 码为1001,在1001的基础上加上 0011, 1001+0011=1100;
故十进制数 9 的余 3 码为 1100;
【7】若寄存器内容为10000000, 若它等于- 0, 则为() 【答案】A
(A)原码; (B)补码; (C)反码; (D)移码;
【解释】+0和-0的原码:00000000、100000000;反码:00000000 111111111;补码:00000000 000000000;
【8】求x = +1010和y = -1101的补码
【解】 整数x > 0,所以[x]补= x = 01010;
整数y < 0,所以[y]补= 2n+1 - |y| =100000-1101=10011;
【9】求y = -0.11的补码
【解】 小数y < 0,所以[y]补= 2 - |y| =10.00 - 0.11 = 1.01;
【10】以定点整数为例(n+1 位, n 位数值位, 1 位符号位) , 用数轴形式说明原码、反码、 补码表示范围和可能的数码组合情况。
【解】 原码、 反码、 补码表示范围具体如下数轴表示:
对于移码, 数轴上的二进制数情况, 符号位与补码相反, 其余位与补码相同。 所以移码中 000…0 表示最小负数, 如果是 8 位, 则 n = 7, 最小负数是-128; 移码中最大正数为+127; 即在移码中,全 0 表示最小负数-2n, 全1表示最大正数+(2n-1)。
【注释】对于 n+1位数 NsN1N2…Nn-1Nn, 定义: [X]移码=2n+X, (-2n≤X<2n)。 由于移码是在原值X 上加一个2n, 所以也称为增码。 因此,符号为 1 时,表示正数,符号为 0 时,表示负数。
X = +1101010, [X]移 = 27+X = 1,1101010
由[X]补求[X]移: 只要将[X]补的符号位求反,就可得到[X]移。
性质: 若[X1]移>[X2]移, 则有 X1>X2。
【11】设机器数字长8位(含1位符号位),若机器数BAH为原码,算术左移1位和算术右移1位分别得() 【答案】A
(A)F4H, DDH; (B)B4H, 6DH; (C)F4H, 9DH; (D)B5H, EDH;
【注释】移位运算在计算机当中是一种非常常见的操作。 例如我们要计算2的3次方,最简单的方法就是将1左移动3次,末位补0,变成1000。移位运算的规则有明确的规范,原码, 反码和补码都各有自己的规则。 通常,我们会对移位运算做分类,把有符号数的移位运算叫做算术移位运算,把无符号数的移位叫做逻辑移位运算。
①算术移位规则
对于正数而言,左移则在尾部添 0,右移则在首部添 0。负数则区别较大。对原码而言,左右移动均是在空位加 0。对补码而言,则是左移添 0,右移添 1。反码呢,左右移动均是添 1。可以总结成如下表
表1 不同机器数算术移位后的空位填补规则
②逻辑移位规则:无论左移还是右移, 空位均补 0。
③循环移位规则:
循环移位分为带进位标志位 CF 的循环移位(大循环) 和不带进位标志位的循环移位(小循环)。循环移位的主要特点是移出的数位又被移入数据之中, 而是否带进位则是看是否将进位标志位加入到循环位移中;
【12】一个8位寄存器内的数值为11001010, 进位标志寄存器C为0, 若将此8位寄存器循环左移(不带进位位) 1位和循环左移(带进位位) 1位, 则该8位寄存器和标志寄存器内数值分别为( )
(A)10010100 1;10010101 0; (B)10010101 0;10010100 1;
(C)10010101 1;10010101 1; (D)10010100 0;10010100 0; 【答案】B
【13】在IEEE754标准规定的64位浮点数格式中, 符号位为1位, 阶码为11位, 尾数为52位, 则它所能表示的最小规格化负数为() 【答案】B
(A) -(2-252 ) *2-1023; (B) -(2-2-52 ) *21023; (C)-1*2-1024; (D)-(1-2-52)*22047;
【14】某数采用IEEE 754 单精度浮点数格式表示为C640 0000H, 则该数的值是() 【答案】A
(A) -1.5×213; (B) -1.5×212; (C) -0.5×213; (D) -0.5×212;
【注释】在浮点数表示方法中,当前微机中使用较多的是 IEEE754 标准浮点数格式。有三种实数类型,其中短实数为32位,如单精度 float 类型的数,长实数为64 位,如双精度 double 类型的数, 临时实数为 80 位。 比较容易考察的是短实数和长实数。
表 2 IEEE754 标准下不同类型实数格式
类型 | 数符 | 阶码 | 尾数 | 总位数 |
短实数 | 1 | 8 | 23 | 32 |
长实数 | 1 | 11 | 52 | 64 |
临时实数 | 1 | 15 | 64 | 80 |
IEEE754 标准下 32 位浮点数的格式如下:
IEEE754 标准下 64位浮点数的格式如下:
IEEE754 标准 32 位浮点数格式特点:
①由数符 S、 阶码 E、 尾数 M 三部分组成,指数以 2 为底、 尾数以 2 为基数。
②符号位 S 占 1 位, S=0 表示正数, S=1 表示负数。
③阶码 E 占 8 位, 移码表示, 偏移量为+127。
④尾数 M 占 23 位, 用原码表示, 小数点在尾数域的最前面。
754 标准规定: 尾数域表示的值是 1.M。 由于最高有效位总是 1, 可以将 1 隐藏在小数点左边, 可不予存储, 尾数实际 24 位。 于是有:
一个 32 位的单精度浮点数的实际真值为:X=(-1)s×(1.M)×2E-127, 其中 e = E-127 可类推得
一个 64 位的双精度浮点数的实际真值为:X=(-1)s×(1.M)×2E-1023, 其中 e = E-1023
754 标准还规定: 当阶码 E=0…0 且尾数 M=0…0 时, 表示的真值 x=±0; 当阶码 E=1…1
且尾数 M=0…0 时, 表示的真值 x=±∞。
【15】将十进制数 28.75 转换为 32 位 IEEE754 短浮点数。
【解】 (28.75)10=(11100.11)2 = 1.110011×24,
E = 127+4 = 131 = (10000011)2
M = (1100 1100 0000 0000 0000 000)2
IEEE 短浮点数编码为:(0100 0001 1110 0110 0000 0000 0000 0000)2 = 41E60000 H
【16】加法器采用并行进位的目的是()。 【答案】C
(A)增强加法器功能; (B)简化加法器设计; (C)提高加法器运算速度; (D)保证加法器可靠性;
更多推荐
所有评论(0)