版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、6.1 无符号数和有符号数无符号数和有符号数 6.3 定点运算定点运算 6.2 数的定点表示和浮点表示数的定点表示和浮点表示 6.4 浮点四则运算浮点四则运算 6.5 算术逻辑单元算术逻辑单元 一、无符号数一、无符号数 寄存器的位数寄存器的位数 反映无符号数的表示范围反映无符号数的表示范围 8 位位 0 255 16 位位 0 65535 带符号的数带符号的数 符号数字化的数符号数字化的数 + 0.1011 0 1011 小数点的位置小数点的位置 + 1100 0 1100 小数点的位置小数点的位置 1100 1 1100 小数点的位置小数点的位置 0.1011 1 1011 小数点的位置小数
2、点的位置 真值真值 机器数机器数 1. 机器数与真值机器数与真值 二、有符号数二、有符号数 2. 原码表示法原码表示法 带符号的绝对值表示带符号的绝对值表示 (1) 定义定义 整数整数 x 为真值为真值n 为整数的位数为整数的位数 如如x = +1110 x原 原 = 0 , 1110 x原 原 = 24 + 1110 = 1 , 1110 x = 1110 x原 原 = 0,x 2n x 0 2n x 0 x 2n 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 小数小数 x 为真值为真值 如如 x = + 0.1101x原 原 = 0 . 1101 x = 0.1101x原
3、 原 = 1 ( 0.1101) = 1 . 1101 x 1 x 0 x原 原 = 1 x 0 x 1 x = 0.1000000 x原 原 = 1 ( 0.1000000) = 1 . 1000000 x = + 0.1000000 x原 原 = 0 . 1000000 用用 小数点小数点 将符号将符号 位和数值部分隔开位和数值部分隔开 用用 小数点小数点 将符号将符号 位和数值部分隔开位和数值部分隔开 例例 6.4 求求 x = 0 的原码的原码 解解: 设设 x = + 0.0000 例例 6.3 已知已知 x原 原 = 0.1101 求 求 x 解:解: x = + 0.1101 同
4、理,对于整数同理,对于整数 + 0 原 原 = 0,0000 + 0.0000原 原 = 0.0000 x = 0.0000 0.0000原 原 = 1.0000 0 原 原 = 1,0000 + 0原 原 0原原 根据根据 定义定义 x原 原 = 0.1101 原码的特点:原码的特点:简单、直观简单、直观 但是用原码作加法时,会出现如下问题:但是用原码作加法时,会出现如下问题: 能否能否 只作加法只作加法 ? 找到一个与负数等价的正数找到一个与负数等价的正数 来代替这个负数来代替这个负数 就可使就可使 减减 加加 加法加法 正正 正正加加 加法加法 正正 负负 加法加法 负负 正正 加法加法
5、 负负 负负 减减 减减 加加 要求要求 数数1 数数2 实际操作实际操作 结果符号结果符号 正正 可正可负可正可负 可正可负可正可负 负负 - 12 3 (1) 补的概念补的概念 时钟时钟逆时针逆时针 - 3 6 3 顺时针顺时针 + 9 6 15 3. 补码表示法补码表示法 可见可见 3 可用可用 + 9 代替代替 记作记作 3 + 9 (mod 12) 同理同理 4 + 8 (mod 12) 5 + 7 (mod 12) 时钟以时钟以 12为模为模 减法减法 加法加法 称称 + 9 是是 3 以以 12 为模的为模的 补数补数 结论结论 一个负数加上一个负数加上 “模模” 即得该负数的补
6、数即得该负数的补数 一个正数和一个负数互为补数时一个正数和一个负数互为补数时 它们绝对值之和即为它们绝对值之和即为 模模 数数 计数器计数器(模(模 16) 1011 1011 0000 + 0101 1011 10000 1011 0000 ? 可见可见 1011 可用可用 + 0101 代替代替 同理同理 011 0.1001 自然去掉自然去掉 记作记作 1011(mod 24) + 0101 (mod 23) + 101 (mod 2) + 1.0111 + 0101(mod24) 1011(mod24) (2) 正数的补数即为其本身正数的补数即为其本身 + 10000+ 10000 两
7、个互为补数的数两个互为补数的数 + 0101+ 10101 分别加上模分别加上模 结果仍互为补数结果仍互为补数 + 0101 + 0101 + 0101 24+1 1011 1,0101 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 丢掉丢掉 1011 0 , 1 , ? ? 1011 (mod24) 可见可见 ? + 0101 0101 0101 10110101 + (mod24+1)100000= (3) 补码定义补码定义 整数整数 x 为真值为真值n 为整数的位数为整数的位数 x补 补 = 0,x 2n x 0 2n+1 + x 0 x 2n(mod 2n+1) 如如
8、x = +1010 x补 补 = 2 7+1 +( 1011000 ) = x补 补 = 0,1010 x = 1011000 1,0101000 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 1011000 100000000 小数小数 x 为真值为真值 x = + 0.1110 x补 补 = x 1 x 0 2 + x 0 x 1(mod 2) 如如 x补 补 = 0.1110 x = 0.1100000 1.0100000 x补 补 = 2 + ( 0.1100000 ) = 用用 小数点小数点 将符号位将符号位 和数值部分隔开和数值部分隔开 0.1100000 10.
9、0000000 (4) 求补码的快捷方式求补码的快捷方式 = 100000 = 1,011010101 + 1 = 1,0110 又又x原 原 = 1,1010 则则x补 补 = 24+1 1010 = 11111 + 1 1010 = 11111 10101010 当真值为当真值为 负负 时,时,补码补码 可用可用 原码除符号位外原码除符号位外 每位取反,末位加每位取反,末位加 1 求得求得 + 1 设设 x = 1010 时时 (5) 举例举例 解:解:x = + 0.0001 解:由定义得解:由定义得 x = x补 补 2 = 1.0001 10.0000 x原 原 = 1.1111 例
10、例 6.6 已知已知 x补 补 = 1.0001 求求 x x补 补 x原原 ? 由定义得由定义得 例例 6.5 已知已知 x补 补 = 0.0001 求求 x x = 0.1111 = 0.1111 例例 6.7 解:解: x = x补 补 24+1 = 1,1110 100000 x原 原 = 1,0010 当真值为当真值为 负负 时,时,原码原码 可用可用 补码除符号位外补码除符号位外 每位取反,末位加每位取反,末位加 1 求得求得 x补 补 x原原 ? x = 0010 = 0010 求求 x 已知已知 x补 补 = 1,1110 由定义得由定义得 真值真值 0, 1000110 1,
11、 0111010 0.1110 1.0010 0.0000 0.0000 1.0000 0,1000110 1,1000110 0.1110 1.1110 0.0000 1.0000 不能表示不能表示 练习练习 求下列真值的补码求下列真值的补码 1补 补 = 2 + x = 10.0000 1.0000 = 1.0000 + 0补 补 = 0补补 由小数补码定义由小数补码定义 = 1000110 x补 补 x原原 x = +70 x = 0.1110 x = 0.0000 x = 70 x = 0.1110 x = 0.0000 x = 1.0000 = 1000110 x补 补 = x 1
12、x 0 2+ x 0 x 1(mod 2) 4. 反码表示法反码表示法 (1) 定义定义 整数整数 x反 反 = 0,x 2n x 0 ( 2n+1 1) + x 0 x 2n(mod 2n+1 1) 如如x = +1101 x反 反 = 0,1101 = 1,0010 x = 1101 x反 反 = (24+1 1) 1101 = 11111 1101 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 x 为真值为真值n 为整数的位数为整数的位数 小数小数 x = + 0.1101 x反 反 = 0.1101 x = 0.1010 x反 反 = (2 2-4) 0.1010 =
13、 1.1111 0.1010 = 1.0101 如如 x反 反 = x 1 x 0 ( 2 2-n) + x 0 x 1(mod 2 2-n) 用用 小数点小数点 将符号位将符号位 和数值部分隔开和数值部分隔开 x 为真值为真值n 为小数的位数为小数的位数 (2) 举例举例 例例 6.10 求求 0 的反码的反码 设设 x = + 0.0000+0.0000反 反= 0.0000 解:解: 同理,对于整数同理,对于整数+0反 反= 0,0000 例例6.9 已知已知 x反 反 = 1,1110 求 求 x 例例6.8 已知已知 x反 反 = 0,1110 求 求 x 解:解: 由定义得由定义得
14、 x = + 1110解:解: = 1,1110 11111 = 0001 由定义得由定义得x = x反 反 (24+1 1) x = 0.0000 0.0000反 反= 1.1111 0反 反= 1,1111 + 0反 反 0反反 三种机器数的小结三种机器数的小结 对于对于正数正数,原码原码 = 补码补码 = 反码反码 对于对于负数负数 ,符号位为符号位为 1,其其 数值部分数值部分 原码除符号位外每位取反末位加原码除符号位外每位取反末位加 1 补码补码 原码除符号位外每位取反原码除符号位外每位取反 反码反码 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数) 或或“.”
15、(小数)将数值部分和符号位隔开(小数)将数值部分和符号位隔开 例例6.11 00000000 00000001 00000010 01111111 10000000 10000001 11111101 11111110 11111111 128 129 -0 -1 -128 -127 -127 -126 二进制代码二进制代码 无符号数无符号数 对应的真值对应的真值 原码对应原码对应 的真值的真值 补码对应补码对应 的真值的真值 反码对应反码对应 的真值的真值 0 1 2 127 253 254 255 -125 -126 -127 -3 -2 -1 -2 -1 -0 +0 +1 +2 +127
16、 +0 +1 +2 +127 +0 +1 +2 +127 +0 设机器数字长为设机器数字长为 8 位(其中位为符号位)位(其中位为符号位) 对于整数,当其分别代表无符号数、原码、补码和对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少?反码时,对应的真值范围各为多少? 例例6.12 解:解: 已知已知 y补 补 求 求 y补 补 y补 补 = 0. y1 y2 yn y = 0. y1 y2 yn y = 0. y1 y2 yn y补 补 = 1.y1 y2 yn + 2-n y补 补 = 1. y1 y2 yn y原 原 = 1. y1 y2 yn + 2-n y
17、= (0. y1 y2 yn + 2-n) y = 0. y1 y2 yn + 2-n y补 补 = 0. y1 y2 yn + 2-n 设设 y补 补 = y0. y1 y2 yn 每位取反,每位取反, 即得即得 y补 补 y补 补连同符号位在内, 连同符号位在内,末位加末位加 1 每位取反,每位取反, 即得即得 y补 补 y补 补连同符号位在内, 连同符号位在内,末位加末位加 1 小数点按约定方式标出小数点按约定方式标出 一、定点表示一、定点表示 Sf S1S2 Sn 数符数符 数值部分数值部分 小数点位置小数点位置 Sf S1S2 Sn 数符数符 数值部分数值部分 小数点位置小数点位置
18、或或 定点机定点机小数定点机小数定点机整数定点机整数定点机 原码原码 补码补码 反码反码 (1 2-n) +(1 2-n)(2n 1) +( 2n 1) 1 +(1 2-n) 2n +( 2n 1) (1 2-n) +(1 2-n)(2n 1) +( 2n 1) 二、浮点表示二、浮点表示 N = Srj浮点数的一般形式浮点数的一般形式 S 尾数尾数j 阶码阶码r 基数(基值)基数(基值) 计算机中计算机中 r 取取 2、4、8、16 等等 当当 r = 2N = 11.0101 = 0.110101210 = 1.1010121 = 1101.012-10 = 0.001101012100 计
19、算机中计算机中 S 小数、可正可负小数、可正可负 j 整数、可正可负整数、可正可负 规格化数规格化数 二进制表示二进制表示 1. 浮点数的表示形式浮点数的表示形式 Sf 代表浮点数的符号代表浮点数的符号 n 其位数反映浮点数的精度其位数反映浮点数的精度 m 其位数反映浮点数的表示范围其位数反映浮点数的表示范围 jf 和和 m 共同表示小数点的实际位置共同表示小数点的实际位置 jf j1 j2 jm Sf S1 S2 Sn j 阶码阶码S 尾数尾数 阶符阶符 数符数符 阶码的阶码的 数值部分数值部分 尾数的数值部分尾数的数值部分 小数点位置小数点位置 3. 浮点数的规格化形式浮点数的规格化形式
20、r = 2尾数最高位为尾数最高位为 1 r = 4尾数最高尾数最高 2 位不全为位不全为 0 r = 8尾数最高尾数最高 3 位不全为位不全为 0 4. 浮点数的规格化浮点数的规格化 r = 2左规左规 尾数左移尾数左移 1 位,阶码减位,阶码减 1 右规右规 尾数右移尾数右移 1 位,阶码加位,阶码加 1 r = 4左规左规 尾数左移尾数左移 2 位,阶码减位,阶码减 1 右规右规 尾数右移尾数右移 2 位,阶码加位,阶码加 1 r = 8左规左规 尾数左移尾数左移 3 位,阶码减位,阶码减 1 右规右规 尾数右移尾数右移 3 位,阶码加位,阶码加 1 基数基数 r 越大,可表示的浮点数的范
21、围越大越大,可表示的浮点数的范围越大 基数不同,浮点数的基数不同,浮点数的 规格化形式不同规格化形式不同 基数基数 r 越大,浮点数的精度降低越大,浮点数的精度降低 例如:例如: 最大正数最大正数= 215( 1210 ) 2+1111 0.1111111111 10 个个 1 最小正数最小正数 最大负数最大负数 最小负数最小负数 = 21521 = 215( 12 10 ) = 216 = 21521 = 216 2-1111 0.1000000000 9 个个 0 2-1111 ( 0.1000000000) 9 个个 0 2+1111 ( 0.1111111111) 10 个个 1 设设
22、 m = 4,n = 10,r = 2 尾数规格化后的浮点数表示范围尾数规格化后的浮点数表示范围 三、举例三、举例 例例 6.13 将将 + 写成二进制定点数、浮点数及在定点写成二进制定点数、浮点数及在定点 机和浮点机中的机器数形式。其中数值部分均取机和浮点机中的机器数形式。其中数值部分均取 10 位,位, 数符取数符取 1 位,浮点数阶码取位,浮点数阶码取 5 位(含位(含1位阶符)。位阶符)。 19 128 解:解:设设 x = + 19 128 二进制形式二进制形式 定点表示定点表示 浮点规格化形式浮点规格化形式 x原 原 = 1, 0010; 0. 1001100000 x补 补 =
23、1, 1110; 0. 1001100000 x反 反 = 1, 1101; 0. 1001100000 定点机中定点机中 浮点机中浮点机中 000 x = 0.0010011 x = 0.0010011 x = 0.10011000002-10 x原 原 = x补补 = x反反 = 0.0010011000 一、移位运算一、移位运算 1. 移位的意义移位的意义 15 m = 1500 cm 小数点右移小数点右移 2 位位 机器用语机器用语15 相对于小数点相对于小数点 左移左移 2 位位 ( 小数点不动小数点不动 ) . 左移左移 绝对值扩大绝对值扩大 右移右移 绝对值缩小绝对值缩小 在计算
24、机中,在计算机中,移位与加减配合,能够实现乘除运算移位与加减配合,能够实现乘除运算 2. 算术移位规则算术移位规则 1 右移右移 添添 1 左移左移 添添 0 0 反反 码码 补补 码码 原原 码码 负数负数 0原码、补码、反码原码、补码、反码正数正数 添补代码添补代码码码 制制 符号位不变符号位不变 例例6.16 设机器数字长为设机器数字长为 8 位(含位符号位),写出位(含位符号位),写出 A = +26时,三种机器数左、右移一位和两位后的表时,三种机器数左、右移一位和两位后的表 示形式及对应的真值,并分析结果的正确性。示形式及对应的真值,并分析结果的正确性。 解:解:A = +26 则则
25、 A原 原 = A补补 = A反反 = 0,0011010 + 60,0000110 +130,0001101 +1040,1101000 + 520,0110100 +260,0011010移位前移位前 A原 原=A补补=A反反 对应的真值对应的真值 机机 器器 数数 移位操作移位操作 = +11010 左移一位左移一位 左移两位左移两位 右移一位右移一位 右移两位右移两位 例例6.17 设机器数字长为设机器数字长为 8 位(含位符号位),写出位(含位符号位),写出 A = 26时,三种机器数左、右移一位和两位后的表时,三种机器数左、右移一位和两位后的表 示形式及对应的真值,并分析结果的正确
26、性。示形式及对应的真值,并分析结果的正确性。 解:解:A = 26 61,0000110 131,0001101 1041,1101000 521,0110100 261,0011010移位前移位前 对应的真值对应的真值机机 器器 数数移位操作移位操作 原码原码 = 11010 左移一位左移一位 左移两位左移两位 右移一位右移一位 右移两位右移两位 61,1111001 131,1110010 1041,0010111 521,1001011 261,1100101移位前移位前 对应的真值对应的真值机机 器器 数数移位操作移位操作 71,1111001 131,1110011 1041,001
27、1000 521,1001100 261,1100110移位前移位前 对应的真值对应的真值机机 器器 数数移位操作移位操作补码补码 反码反码 左移一位左移一位 左移两位左移两位 右移一位右移一位 右移两位右移两位 左移一位左移一位 左移两位左移两位 右移一位右移一位 右移两位右移两位 3. 算术移位的硬件实现算术移位的硬件实现 (a)真值为正真值为正 (b)负数的原码负数的原码(c)负数的补码负数的补码(d)负数的反码负数的反码 0001 0 丢丢 1 丢丢 1 出错出错 影响精度影响精度 出错出错 影响精度影响精度 正确正确 影响精度影响精度 正确正确 正确正确 4. 算术移位和逻辑移位的区
28、别算术移位和逻辑移位的区别 算术移位算术移位有符号数的移位有符号数的移位 逻辑移位逻辑移位无符号数的移位无符号数的移位 逻辑左移逻辑左移 逻辑右移逻辑右移 低位添低位添 0,高位移丢,高位移丢 高位添高位添 0,低位移丢,低位移丢 例如例如 01010011 逻辑左移逻辑左移 10100110 逻辑右移逻辑右移 01011001 算术左移算术左移算术右移算术右移 0010011011011001(补码)(补码) 高位高位 1 移丢移丢 0 1 0 1 0 0 1 1 0 Cy 0 1 0 1 0 0 1 1 0 0 10110010 二、加减法运算二、加减法运算 1. 补码加减运算公式补码加减
29、运算公式 (1) 加法加法 (2) 减法减法 整数整数 A补 补 + B补补 = A+B补 补( (mod 2n+1) 小数小数 A补 补 + B补补 = A+B补 补( (mod 2) AB = A+(B ) 整数整数 A B补 补 = A+(B )补 补= A补补 + B补补 (mod 2n+1) 小数小数 A B补 补 = A+(B )补 补 (mod 2) 连同符号位一起相加,符号位产生的进位自然丢掉连同符号位一起相加,符号位产生的进位自然丢掉 = A补 补 + B补补 2. 举例举例 解:解:A补 补 B补 补 A补 补 + B补补 + = 0 . 1 0 1 1 = 1 . 1 0
30、 1 1 = 1 0 . 0 1 1 0 = A + B补 补 验证验证 例例 6.18设设 A = 0.1011,B = 0.0101 求求 A + B补 补 0.1011 0.0101 0.0110 A + B = 0 . 0 1 1 0 A补 补 B补 补 A补 补 + B补补 + = 1 , 0 1 1 1 = 1 , 1 0 1 1 = 1 1 , 0 0 1 0= A + B补 补 验证验证 1001 1110 0101+ 例例 6.19设设 A = 9,B = 5 求求 A+B补 补 解:解: A + B = 1110 例例 6.20 设机器数字长为设机器数字长为 8 位(含位(
31、含 1 位符号位)位符号位) 且且 A = 15, B = 24,用补码求,用补码求 A B 解:解:A = 15 = 0001111 B = 24 = 0011000 A补 补 + B补补 + A补 补 = 0, 0001111 B补 补 = 1, 1101000 = 1, 1110111= A B补 补 B补 补 = 0, 0011000 练习练习 1设设 x = y = ,用补码求,用补码求 x+y 9 16 11 16 x + y = 0.1100 = 12 16 练习练习 2 设机器数字长为设机器数字长为 8 位(含位(含 1 位符号位)位符号位) 且且 A = 97,B = +41
32、,用补码求,用补码求 A B A B = + 1110110 = + 118 A B = 1001 = 9 错错 错错 3. 溢出判断溢出判断 (1) 一位符号位判溢出一位符号位判溢出 参加操作的参加操作的 两个数两个数(减法时即为被减数和(减法时即为被减数和“求补求补” 以后的减数)以后的减数)符号相同符号相同,其结果的符号与原操作其结果的符号与原操作 数的符号不同数的符号不同,即为溢出即为溢出 硬件实现硬件实现 最高有效位的进位最高有效位的进位 符号位的进位符号位的进位 = 1 如如1 0 = 1 0 1 = 1 有有 溢出溢出 0 0 = 0 1 1 = 0 无无 溢出溢出 溢出溢出 (
33、2) 两位符号位判溢出两位符号位判溢出 x补 补 = x 1 x 0 4 + x 0 x 1(mod 4) x补 补 + y补补 = x + y 补补 ( (mod 4) x y补 补 = x补补 + y补补 ( (mod 4) 结果的双符号位结果的双符号位 相同相同 未溢出未溢出 结果的双符号位结果的双符号位 不同不同 溢出溢出 最高符号位最高符号位 代表其代表其 真正的符号真正的符号 00. 11. 10. 01. 00, 11, 10, 01, 4. 补码加减法的硬件配置补码加减法的硬件配置 V0 A nGAGS 加法器(加法器(n+1)溢出溢出 判断判断 求补控制求补控制 逻逻 辑辑
34、0 X n A、X 均均 n+1 位位 用减法标记用减法标记 GS 控制求补逻辑控制求补逻辑 三、乘法运算三、乘法运算 1. 分析笔算乘法分析笔算乘法 A = 0.1101 B = 0.1011 AB = 0.10001111 0 . 1 1 0 1 0 . 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 . 1 0 0 0 1 1 1 1 符号位单独处理符号位单独处理 乘数的某一位决定是否加被乘数乘数的某一位决定是否加被乘数 4个位积一起相加个位积一起相加 乘积的位数扩大一倍乘积的位数扩大一倍 乘积的符号心算求得乘积的符号心算求得 ? 2. 笔算乘法改进笔
35、算乘法改进 A B = A 0.1011 = 0.1A + 0.00A + 0.001A +0.0001A = 0.1A + 0.00A + 0.001( A +0.1A) = 0.1A + 0.010 A + 0. 1( A +0.1A) = 0.1A +0.1 0 A+0.1(A + 0.1A) = 2-1A +2-1 0 A+2-1(A + 2-1(A+0) 第一步第一步 被乘数被乘数A + 0 第二步第二步 右移右移 一一 位,得新的部分积位,得新的部分积 第八步第八步 右移右移 一一 位,得结果位,得结果 第三步第三步 部分积部分积 + 被乘数被乘数 右移一位右移一位 3. 改进后的
36、笔算乘法过程(竖式)改进后的笔算乘法过程(竖式) 0 . 0 0 0 0 0 . 1 1 0 1 0 . 1 1 0 1 0 . 1 1 0 1 0 . 0 0 0 0 0 . 1 1 0 1 初态,部分积初态,部分积 = 0 乘数为乘数为 1,加被乘数,加被乘数 乘数为乘数为 1,加被乘数,加被乘数 乘数为乘数为 0,加,加 0 1 . 0 0 1 11 0 . 1 0 0 11 1 1 . 0 0 0 11 1 1 乘数为乘数为 1,加,加 被乘数被乘数 0 . 1 0 0 01 1 1 1 1,得结果,得结果 1 0 1 1 = 0 . 0 1 1 0 1,形成新的部分积,形成新的部分积
37、 1 1 0 1 = 0 . 1 0 0 11,形成新的部分积,形成新的部分积1 1 1 0 = 0 . 0 1 0 01,形成新的部分积,形成新的部分积1 1 1 1 = 部部 分分 积积 乘乘 数数 说说 明明 小结小结 被乘数只与部分积的高位相加被乘数只与部分积的高位相加 由乘数的末位决定被乘数是否与原部分积相加,由乘数的末位决定被乘数是否与原部分积相加, 然后然后 1 位形成新的部分积位形成新的部分积,同时,同时 乘数乘数 1位位 (末位移丢),空出高位存放部分积的低位。(末位移丢),空出高位存放部分积的低位。 硬件硬件3 个寄存器,具有移位功能个寄存器,具有移位功能 1个全加器个全加
38、器 乘法乘法 运算可用运算可用 加和移位实现加和移位实现 n = 4,加加 4 次次,移移 4 次次 4. 原码乘法原码乘法 (1) 原码一位乘运算规则原码一位乘运算规则 以小数为例以小数为例 设设x原 原 = x0. x1x2 xn y原 原 = y0. y1y2 yn = (x0 y0). x*y* x y原 原 = (x0 y0).(0. x1x2 xn)(0.y1y2 yn) 式中式中 x*= 0. x1x2 xn 为为 x 的绝对值的绝对值 y*= 0. y1y2 yn 为为 y 的绝对值的绝对值 乘积的符号位单独处理乘积的符号位单独处理 x0 y0 数值部分为绝对值相乘数值部分为绝
39、对值相乘 x* y* (2) 原码一位乘递推公式原码一位乘递推公式 x* y* = x*(0.y1y2 yn) = x*(y12-1+y22-2+ + yn2-n) = 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) ) z1 zn z0 = 0 z1 = 2-1(ynx*+z0) z2 = 2-1(yn-1x*+z1) zn = 2-1(y1x*+zn-1) z0 例例6.21已知已知 x = 0.1110 y = 0.1101 求求x y原 原 解:解:数值部分的运算数值部分的运算 0 . 0 0 0 0 0 . 1 1 1 0 0 . 1 1 1 0 0 . 0 0 0
40、 0 0 . 1 1 1 0 0 . 1 1 1 0 部分积部分积 初态初态 z0 = 0 部部 分分 积积 乘乘 数数 说说 明明 0 . 0 1 1 10 1 . 0 0 0 11 0 1 . 0 1 1 01 1 0 0 . 1 0 1 10 1 1 0 1,得得 z4 逻辑右移逻辑右移 1 1 0 1 = 0 . 0 1 1 11,得得 z10 1 1 0 = 0 . 0 0 1 1 1,得得 z2 1 0 1 1 = 0 . 1 0 0 0 1,得得 z3 1 1 0 1 = 逻辑右移逻辑右移 逻辑右移逻辑右移 逻辑右移逻辑右移 + + + + + + + + + x* + 0 +
41、x* + x* 数值部分按绝对值相乘数值部分按绝对值相乘 乘积的符号位乘积的符号位 x0 y0 = 1 0 = 1 x* y* = 0. 1 0 1 1 0 1 1 0 则则 x y原 原 = 1. 1 0 1 1 0 1 1 0 特点特点绝对值运算绝对值运算 逻辑移位逻辑移位 例例6.21 结果结果 用移位的次数判断乘法是否结束用移位的次数判断乘法是否结束 (3) 原码一位乘的硬件配置原码一位乘的硬件配置 A、X、Q 均均 n+1 位位 移位和加受末位乘数控制移位和加受末位乘数控制 0 A n 加加 法法 器器 控控 制制 门门 0 X n 移位和加控制移位和加控制 计数器计数器 CSGM
42、0Q n 右移右移 (4) 原码两位乘原码两位乘 原码乘原码乘符号位符号位 和和 数值位数值位 部分部分 分开运算分开运算 两位乘两位乘每次用每次用 乘数的乘数的 2 位判断位判断 原部分积原部分积 是否加是否加 和和 如何加如何加 被乘数被乘数 1 1 1 0 0 1 0 0 加加 “0” 2 加加 1 倍的被乘数倍的被乘数 2 加加 2 倍的被乘数倍的被乘数 2 加加 3 倍的被乘数倍的被乘数 2 3 ? 先先 减减 1 倍倍 的被乘数的被乘数 再再 加加 4 倍倍 的被乘数的被乘数 4 1 3 100 01 11 新的部分积新的部分积乘数乘数yn-1 yn (5) 原码两位乘运算规则原码
43、两位乘运算规则 11 1 11 0 10 1 10 0 01 1 01 0 00 1 00 0 操操 作作 内内 容容 标志位标志位 Cj乘数判断位乘数判断位 yn-1yn z 2, y* 2, Cj 保持保持“0” z 2, y* 2, Cj 保持保持“1” zx* 2, y* 2, Cj 保持保持“1” z+2x* 2, y* 2, Cj 保持保持“0” z+x* 2, y* 2, Cj 保持保持“0” 共有操作共有操作 +x* +2x* x* 2 实际操作实际操作 +x*补 补 +2x*补补 +x* 补补 2 补码移 补码移 zx* 2, y* 2, Cj 置置“1” z+2x* 2,
44、y* 2, Cj 置置“0” z+x* 2, y* 2, Cj 置置“0” 例例6.22已知已知 x = 0.111111 y = 0.111001 求求xy原 原 0 0 0 . 0 0 0 0 0 0 0 0 0 . 1 1 1 1 1 1 0 0 0 . 1 1 1 1 1 1 0 0 . 1 1 1 0 0 10初态初态 z0 = 0 + x*, Cj = 0 0 1 0 . 0 0 1 1 0 11 1 0 0 0 . 1 1 1 0 0 00 0 0 1 1 1 1 1 1 . 1 0 0 1 0 00 1 1 1 0 0 1 . 1 1 1 1 1 0+ 2x*,Cj = 0 1
45、 1 1 . 0 0 0 0 0 1 x*, Cj = 1 0 0 0 . 1 1 1 1 1 1+ x*, Cj = 0 00 0 0 . 0 0 1 1 1 11 1 0 0 1 1 1 02 00 0 0 . 1 0 0 0 1 10 1 1 1 0 0 1 12 11 1 1 . 1 1 1 0 0 1 0 0 0 1 1 1 0 02 Cj部部 分分 积积 乘乘 数数 说说 明明 补补 码码 右右 移移 补补 码码 右右 移移 解:解:数值部分的运算数值部分的运算 补补 码码 右右 移移 + + + + + + + + 数值部分的运算数值部分的运算 乘积的符号位乘积的符号位 x0 y
46、0 = 0 1 = 1 x* y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1 则则 x y原 原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1 例例6.22 结果结果 特点特点绝对值的补码运算绝对值的补码运算 算术移位算术移位 用移位的次数判断乘法是否结束用移位的次数判断乘法是否结束 5. 补码乘法补码乘法 设设 被乘数被乘数 乘数乘数 x补 补 = x0. x1x2 xn y补 补 = y0. y1y2 yn 被乘数任意,乘数为正被乘数任意,乘数为正 同原码乘同原码乘但但 加加 和和 移位移位 按按 补码规则补码规则 运算运算 乘积的符号自然形成乘积的符号自然形成
47、 被乘数任意,乘数为负被乘数任意,乘数为负 乘数乘数y补 补, ,去掉符号位去掉符号位,操作同,操作同 最后最后 加加x补 补, ,校正校正 (1) 补码一位乘运算规则补码一位乘运算规则 以小数为例以小数为例 Booth 算法算法(被乘数、乘数符号任意) (被乘数、乘数符号任意) 设设x补 补 = x0.x1x2 xn y补补 = y0.y1y2 yn x y补 补 = x补 补( 0.y1 yn ) x补补 y0 = x补 补(y1 2-1+y22-2+ +yn2-n) x补补 y0 = x补 补(y0+y1 2-1+y22-2+ +yn2-n) = x补 补y0+(y1 y12-1)+(y
48、22-1y22-2)+ +(yn2-(n-1)yn2-n) = x补 补(y1y0)+(y2y1)2-1+ +(ynyn-1)2-(n-1)+(0 yn)2-n) y1 2-1 + + yn 2-n x补 补= +x补补 2-1 = 20 2-1 2-2 = 2-1 2-22-12-2 = x补 补(y1y0)+(y2y1)2-1+ +(yn+1yn)2-n 附加位附加位 yn+1 Booth 算法递推公式算法递推公式 z0补 补= 0 z1补 补= 2-1(yn+1yn)x补补+z0补补 yn+1 = 0 zn补 补= 2-1(y2y1)x补补+zn-1补补 x y补 补= zn补补+(y1
49、y0)x补补 最后一步不移位最后一步不移位 如何实现如何实现 yi+1yi ? 0 0 0 1 1 0 1 1 1 +x补 补 1 +x补 补 1 1 0 1 -1 0 yi yi+1 操作操作 yi+1yi 例例6.23已知已知 x = +0.0011 y = 0.1011 求求xy补 补 解:解:0 0 . 0 0 0 0 1 1 . 1 1 0 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 0 0 . 0 0 1 1 1 1 . 1 1 0 1 1 . 0 1 0 10 0 0 . 0 0 0 11 1 1 . 1 1 0 11 1 0 0 .
50、0 0 0 11 1 1 1 1 . 1 1 0 11 1 1 1 x补 补 = 0.0011 y补 补 = 1.0101 x补 补 = 1.1101 +x补 补 1 1 . 1 1 1 01 1 0 1 0 11 +x补 补 0 0 . 0 0 0 01 1 1 0 101 +x补 补 1 1 . 1 1 1 01 1 1 1 011 0 0 . 0 0 0 0 1 1 1 1 101 +x补 补 +x补 补 xy补 补 =1.11011111 最后一步不移位最后一步不移位 补码补码 右移右移 补码补码 右移右移 补码补码 右移右移 补码补码 右移右移 + + + + + + + + + +
51、 (2) Booth 算法的硬件配置算法的硬件配置 A、X、Q 均均 n + 2 位位 移位和加受末两位乘数控制移位和加受末两位乘数控制 0 A n+1 n + 2 位加法器位加法器 控控 制制 门门 0 X n+1 0 Q n n+1 移位和加移位和加 控制逻辑控制逻辑 计数器计数器 CGM 00,11 01 10 右移右移 乘法小结乘法小结 原码乘原码乘 符号位符号位 单独处理单独处理 补码乘补码乘 符号位符号位 自然形成自然形成 原码乘去掉符号位运算原码乘去掉符号位运算 即为无符号数乘法即为无符号数乘法 不同的乘法运算需有不同的硬件支持不同的乘法运算需有不同的硬件支持 整数乘法与小数乘法
52、完全相同整数乘法与小数乘法完全相同 可用可用 逗号逗号 代替小数点代替小数点 四、除法运算四、除法运算 1. 分析笔算除法分析笔算除法 x = 0.1011 y = 0.1101 求求 xy 0 . 1 0 1 10 . 1 1 0 1 0 . 0 1 1 0 1 0 . 0 1 0 0 1 0 . 0 0 1 1 0 1 0 . 0 0 0 1 0 1 0 . 0 0 0 0 1 1 0 1 0 . 0 0 0 0 0 1 1 1 1 商符单独处理商符单独处理 心算上商心算上商 余数不动低位补余数不动低位补“0” 减右移一位的除数减右移一位的除数 上商位置不固定上商位置不固定 xy = 0.
53、 1 1 0 1 余数余数 0. 0 0 0 0 0 1 1 1 商符心算求得商符心算求得 0 0 . 1 0 1 0 0 0 ? ? ? 2. 笔算除法和机器除法的比较笔算除法和机器除法的比较 笔算除法笔算除法 机器除法机器除法 商符单独处理商符单独处理 心算上商心算上商 符号位异或形成符号位异或形成 | x | | y | 0 上商上商 1 | x | | y | 0 上商上商 0 余数余数 不动不动 低位补低位补“0” 减右移一位减右移一位 的除数的除数 2 倍字长加法器倍字长加法器 上商位置上商位置 不固定不固定 余数余数 左移一位左移一位 低位补低位补“0” 减减 除数除数 1 倍字
54、长加法器倍字长加法器 在寄存器在寄存器 最末位上商最末位上商 3. 原码除法原码除法 以小数为例以小数为例 x 原 原 = x0. x1x2 xn y 原 原 = y0. y1y2 yn 式中式中 x* = 0. x1x2 xn 为为 x 的绝对值的绝对值 y* = 0. y1y2 yn 为为 y 的绝对值的绝对值 数值部分为绝对值相除数值部分为绝对值相除 x* y* 被除数不等于被除数不等于 0 除数不能为除数不能为 0 小数定点除法小数定点除法 x* y*整数定点除法整数定点除法 x* y* 商的符号位单独处理商的符号位单独处理 x0 y0 原 原 = (x0 y0). x y x* y*
55、 约定约定 (1) 恢复余数法恢复余数法 0 . 1 0 1 1 1 . 0 0 1 1 1 . 0 0 1 1 1 . 0 0 1 1 0 . 0 0 0 0 + y*补 补 01 . 1 1 1 0余数为负,上商余数为负,上商 0 0 . 1 1 0 1 恢复余数恢复余数 00 . 1 0 0 1余数为正,上商余数为正,上商 1 + y*补 补 1 . 0 1 1 001 1 . 0 0 1 00 11 +y*补 补 解:解: 被除数(余数)被除数(余数) 商商 说说 明明 x原 原 = 1.1011 y原原 = 1.1101 x0 y0 = 1 1 = 0 x = 0.1011 y =
56、0.1101求求 原 原 x y 例例6.24 1 0 . 1 0 1 1 恢复后的余数恢复后的余数 0 +y*补 补 y*补 补 = 0.1101 y*补补 = 1.0011 逻辑左移逻辑左移 逻辑左移逻辑左移 + + + + + + + + 0 . 0 1 0 10 1 余数为正,上商余数为正,上商 1 被除数(余数)被除数(余数) 商商 说说 明明 1 . 0 0 1 1 0 . 1 1 0 1 1 . 0 0 1 1 10 . 1 0 1 00 1 1 + y*补 补 1 . 1 1 0 10 1 1 余数为负,上商余数为负,上商 0 恢复余数恢复余数 1 . 0 1 0 00 1 1
57、 01 + y*补 补 0 . 0 1 1 10 1 1 0 余数为正,上商余数为正,上商 1 = 0.1101 x* y* 原 原 x y = 0.1101 上商上商 5 次次 第一次上商判溢出第一次上商判溢出 余数为正余数为正 上商上商 1 余数为负余数为负 上商上商 0,恢复余数,恢复余数 移移 4 次次 1 0 0 . 1 0 1 0 恢复后的余数恢复后的余数 0 1 1 0 1 +y*补 补 逻辑左移逻辑左移 逻辑左移逻辑左移 + + + + + + (2) 不恢复余数法不恢复余数法 余数余数 Ri0 上商上商 “1”,2Ri y* 余数余数 Ri0 上商上商 “0”, Ri + y
58、* 恢复余数恢复余数 2( Ri+y*) y* = 2Ri + y* 加减交替加减交替 恢复余数法运算规则恢复余数法运算规则 不恢复余数法运算规则不恢复余数法运算规则 上商上商“1” 2Ri y* 上商上商“0” 2Ri + y* (加减交替法)(加减交替法) x = 0.1011 y = 0.1101 求求 原 原 x y 解:解: 例例6.25 0 . 1 0 1 1 1 . 0 0 1 1 0 . 1 1 0 1 1 . 0 0 1 1 1 . 0 0 1 1 0 . 1 1 0 1 0 . 0 0 0 0 + y*补 补 01 . 1 1 1 0 余数为负,上商余数为负,上商 0 1
59、. 1 1 0 001 +y*补 补 00 . 1 0 0 1 余数为正,上商余数为正,上商 1 + y*补 补 1 . 0 0 1 00 1 1 + y*补 补 +y*补 补 0 . 1 0 1 00 1 11 1 . 1 0 1 00 1 1 0 1 0 . 0 1 0 10 1余数为正,上商余数为正,上商 1 0 . 0 1 1 10 1 1 0 余数为正,上商余数为正,上商 1 1 . 1 1 0 10 1 1余数为负,上商余数为负,上商 0 x原 原 = 1.1011 y*补 补 = 0.1101 y*补 补 = 1.0011 y原 原 = 1.1101 1 1 0 1 逻逻 辑辑
60、左左 移移 x*补 补 = 0.1011 逻逻 辑辑 左左 移移 逻逻 辑辑 左左 移移 逻逻 辑辑 左左 移移 x0 y0 = 1 1 = 0 x* y* = 0.1101 = 0.1101 原 原 x y 上商上商 n+1 次次 例例6.25 结果结果 特点特点 用移位的次数判断除法是否结束用移位的次数判断除法是否结束 第一次上商判溢出第一次上商判溢出 移移 n 次次,加加 n+1 次次 (3) 原码加减交替除法硬件配置原码加减交替除法硬件配置 A、X、Q 均均 n +1 位位 用用 Qn 控制加减交替控制加减交替 0 A n n + 1 位加法器位加法器 控控 制制 门门 0 X n 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省金华市兰溪市实验中学2026年中考5月模拟考试物理试题试卷含解析
- 2026年大学大一(经济学原理实训)博弈论应用阶段测试试题及答案
- 护理课件制作软件的模板资源
- 2025年福建省世界少年奥林匹克思维能力测评三年级数学试卷(A卷)(含答案)
- 护理安全与安全培训
- 急救护理公共卫生培训
- 护理文书的绿色环保
- 2026年医疗废物标识标签试题及答案
- 患者心理健康的家庭护理支持
- 2026三年级数学下册 平方分米的认识
- 2025年中国抑郁障碍防治指南
- 上海市市西中2024学年高三下学期精英联赛英语试题含解析
- 2023年全国高校体育单招考试英语试卷试题及答案详解1
- 满族文化-大学课件
- 周三多管理学精华重点
- GB/T 38119-2019邵氏硬度计的检验
- DL-T 5190.1-2022 电力建设施工技术规范 第1部分:土建结构工程(附条文说明)
- 《电视节目编导》课件电视节目编导
- 《了凡四训》课件
- 高中化学必修二《第二节 氮及其化合物》课件
- 耕地后备资源调查评价数据库图层列表及字段结构、土壤样品采集要求、耕地后备资源调查分析报告提纲
评论
0/150
提交评论