5. X = 0111 00.1101000 j X S X Y = 0110 00.1010000 j Y S Y S Y j Y + 1 S X j X + 1 S X j X + 1 No No Yes j X = j Y ? S X +- S Y S X j X (or j Y ) j X X f1 ⊕X f2 = 1 X f1 X f2 X 1 + X f1 X f2 X 1 = 1 ? S X j X - 1 输出 Yes Yes No 3 )规格化处理 00.1101000 S X + 00.0101000 S Y 01. 0 010000 右规: 1000 00.10010000 左规 右规 2 )尾数运算 1 )阶码对齐 4 )舍入处理 5 )溢出判断 j X > j Y ? No Yes
6. 例 : 已知 X = 0.11011011 * 2 010 , Y = - 0.10101100 * 2 100 求 X + Y 解 : ① 对大阶: [ j X ] 补 = 00 0010 [ j Y ] 补 = 00 0100 [ - j Y ] 补 = 11 1100 求阶差 Δj= [ j X ] 补 + [ - j Y ] 补 = 00 0010 + 11 1100 = 11 1110 ( -2 ) X 的阶码小: X 阶码 + 2 ( [ j X ] 补 = [ j Y ] 补 = 00 0100 ) X 的尾数右移 2 位,前面补符号位 [ S X ] 补 = 00 00110110 11 (此时保留右移数据,不丢不舍) ② 尾数相加 [ S X ] 补 = [ S X ] 补 + [ S Y ] 补 = 00 00110110 11 + 11 01010100 = 11 1 0001010 11 ③ 规格化操作: 左规 : 数值位左移 1 位 = 11 0 0010101 1 阶码 - 1 ([ j X ] 补 = 00 0011 ) ④ 舍入 舍去的附加位最高位为 1 ,结果最低位 +1 : [ S x ] 补 = 11 00010110 S= - 0.11101010 ⑤ 判溢出 阶码符号为 00 ,不溢出。 最终结果为: X+Y = - 0.11101010 * 2 011 实际运算时,先确定位数。假设机器字长 16 位,采用浮点表示数, 其中阶符 2 位,阶码 4 位,尾符 2 位,尾数 8 位,都用补码表示。
8. X = S X · 2 j X Y = S Y · 2 j Y X * Y = ( S X * S Y ) 2 j X + j Y X / Y = ( S X / S Y ) 2 j X - j Y 5.2 、浮点乘除运算 1 )阶码加减: 乘法: j X + j Y ,除法: j X - j Y 2 )尾数乘除: 乘法: S X * S Y ,除法: S X / S Y 3 )规格化处理; 4 )舍入操作: 有可能带来又一次规格化; 5 )判溢出: 检查阶码上下溢出。
9. 例如: 求 X*Y , X = 0.0110011 * 2 -5 Y = - 0.1110010 * 2 3 阶码(含符号位)用 4 位移码表示,采用单符号位。 尾数(含符号位)用 8 位补码表示,采用单符号位。 [j X ] 补 = 1 011 [j X ] 移 = 0 011 [j Y ] 补 = 0 011 [j Y ] 移 = 1 011 [S X ] 补 = 0.0110011 [-S X ] 补 =1.1001101 [S Y ] 补 =1.0001110 [X] 浮 = 0 011 , 0.0110011 [Y] 浮 = 1 011 , 1.0001110 5.2 、浮点乘除运算
15. A , B , C 寄存器的作用 5 、定点运算器的基本结构 商 S 除数 Y 被除数 X 余数 R 除法 乘数 Y 乘积低位 S 被乘数 X 部分积 乘积高位 S 乘法 无用 减数 Y 被减数 X 运算结果 S 减法 无用 加数 Y 被加数 X 运算结果 S 加法 C B A 运算
16. 算术逻辑单元 ALU 74181 逻辑电路图 P281 P299 M 是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 F 3 ~ F 0 是运算结果 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数
17. 1.2 、算术逻辑单元 M 是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数 算术逻辑单元 ALU 74181 运算功能表 P281 P299 A· B (A·B) 减 1 A·B 1 1 1 0 A 减 B A 减 B 减 1 A B 0 1 1 0 (A·B) 加 (A+B) 加 1 (A·B) 加 (A+B) B 1 0 1 0 A 加 (A·B) 加 1 A 加 (A·B) A·B 0 0 1 0 “ 0” 减 1 “ 0” 1 1 0 0 (A+B) 加 1 A+B A·B 0 1 0 0 (A+B) 加 1 A+B A+B 1 0 0 0 A+1 A A 0 0 0 0 C n =0 C n =1 M=0 算术运算 M=1 逻辑运算 正 逻 辑 S 0 S 1 S 2 S 3
29. 定点运算器 是数据的加工处理部件, 是 CPU 的重要组成部分。 包括: ALU 算术 / 逻辑单元 , 阵列乘除器, 数据寄存器, 累加器, 多路转换器, 数据总线(内部总线) 等逻辑构成。 移位门 ALU 选择门 A 选择门 B 通用 寄存器组 数据总线 数据总线 定点运算器的基本结构框图 Review: 第六章 计算机的运算方法
30. 考研题精选 1 、当采用两位符号位进行加法运算时,如果结果的符号位为()表示负溢出。 A 00 B 01 C 10 D 11 两符号位相同不溢出。 最高位符号位代表真正的符号,所以 01 表示正溢出, 10 表示负溢出。 2 、在补码定点加法运算中,采用 1 位符号位,则当()时,表示结果溢出。 A 符号位有进位 B 符号位进位和最高位进位异或结果为 0 C 符号位为 1 D 符号位进位和最高位进位异或结果为 1 3 、在补码加减交替法中,参加操作的数是(),商符()。 A 绝对值的补码 在形成商值的过程中自动形成 B 补码 在形成商值的过程中自动形成 C 补码 由两个数符号位异或形成 D 绝对值的补码 由两个数符号位异或形成
31. 考研题精选 1 、真值 0 表示形式唯一的机器数是() A 原码 B 补码和移码 C 反码 D 以上都不对 2 、什么是机器零?浮点数采用什么机器数形式表示时,可用全 0 表示机器零? 当一个浮点数尾数为 0 ,无论阶码为何值; 或者当阶码等于或小于它所能表示的最小数时,无论尾数为何值; 机器都把该浮点数当做机器零处理。 阶码用移码表示:最小的阶码是全 0 ; 尾数用补码表示:真值 0 表示为全 0 。 3 、计算机中表示地址时,采用() A 原码 B 补码 C 反码 D 无符号数
32. 考研题精选 1 、浮点数的表示范围和精度取决于() A 阶码的位数和尾数的机器数形式 B 阶码的机器数形式和尾数的位数 C 阶码的位数和尾数的位数 D 阶码的机器数形式和尾数的机器数形式 2 、采用规格化的浮点数是为了() 3 、当定点运算发生溢出时,应该()。 A 向左规格化 B 向右规格化 C 发出出错信息 D 舍入处理 A 增加数据的表示范围 B 方便浮点运算 C 防止运算时数据溢出 D 增加数据的表示精度 当阶码和尾数的位数确定后,采用规格化尾数可获得最好的表示精度。