计算机组成结构-Lecture08_第1页
计算机组成结构-Lecture08_第2页
计算机组成结构-Lecture08_第3页
计算机组成结构-Lecture08_第4页
计算机组成结构-Lecture08_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、教师:傅均教师:傅均 班级:计科班级:计科1001/10021001/1002 6.1 无符号数和有符号数无符号数和有符号数 6.3 定点运算定点运算 6.2 数的定点表示和浮点表示数的定点表示和浮点表示 6.4 浮点四则运算浮点四则运算 6.5 算术逻辑单元算术逻辑单元 一、无符号数一、无符号数 寄存器的位数寄存器的位数(机器字长机器字长),反映无符号数的,反映无符号数的 表示范围。表示范围。 无符号数:没有符号的数,寄存器的每一无符号数:没有符号的数,寄存器的每一 位均用来存放数值。位均用来存放数值。 8 位位 0 255 16 位位 0 65535 带正负符号的数带正负符号的数 符号数字

2、化的数符号数字化的数 + 0.1011 0 1011 小数点的位置小数点的位置 + 1100 0 1100 小数点的位置小数点的位置 1100 1 1100 小数点的位置小数点的位置 0.1011 1 1011 小数点的位置小数点的位置 真值真值 机器数机器数 1. 机器数与真值机器数与真值 二、有符号数二、有符号数 2. 原码表示法原码表示法 原码又称为带符号的绝对值表示原码又称为带符号的绝对值表示 (1) 定义定义 整数整数 x 为真值为真值n 为整数的位数为整数的位数 如如x = +1110 x原 原 = 0 , 1110 x原 原 = 24 + 1110 = 1 , 1110 x =

3、1110 x原 原 = 0,x 2n x 0 2n x 0 x 2n 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 小数小数 x 为真值为真值 如如 x = + 0.1101x原 原 = 0 . 1101 x = 0.1101x原 原 = 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 用用 小数点小数点 将符号将符号 位和数值部分隔开位和数值部分隔开 用用 小

4、数点小数点 将符号将符号 位和数值部分隔开位和数值部分隔开 (2) 举例举例 例例 6.1 已知已知 x原 原 = 1.0011 求 求 x 解解: 例例 6.2 已知已知 x原 原 = 1,1100 求 求 x 解解: x = 1 x原 原 = 1 1.0011 = 0.0011 x = 24 x原 原 = 10000 1,1100 = 1100 0.0011 1100 由定义得由定义得 由定义得由定义得 例例 6.4 求求 x = 0 的原码的原码 解解: 设设 x = + 0.0000 例例 6.3 已知已知 x原 原 = 0.1101 求 求 x 解:解: x = + 0.1101 同

5、理,对于整数同理,对于整数 + 0 原 原 = 0,0000 + 0.0000原 原 = 0.0000 x = 0.0000 0.0000原 原 = 1.0000 0 原 原 = 1,0000 + 0原 原 0原原 根据根据 定义定义 x原 原 = 0.1101 原码的特点:原码的特点:简单、直观简单、直观 但是用原码作加法时,会出现如下问题:但是用原码作加法时,会出现如下问题: 能否能否 只作加法只作加法 ? 找到一个与负数等价的正数找到一个与负数等价的正数 来代替这个负数来代替这个负数 就可使就可使 减减 加加 加法加法 正正 正正加加 加法加法 正正 负负 加法加法 负负 正正 加法加法

6、 负负 负负 减减 减减 加加 要求要求 数数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 为模的为模的 补数补数 结论结论 一个负数加上一个负数加上 “模模” 即得该负数的补

7、数即得该负数的补数 一个正数和一个负数互为补数时一个正数和一个负数互为补数时 它们绝对值之和即为它们绝对值之和即为 模模 数数 计数器计数器(模(模 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 (2) 正数的补数即为其本身正数的补数即为其本身 + 10000+ 10000 两个互为补数的数

8、两个互为补数的数 + 0101+ 10101 分别加上模分别加上模 结果仍互为补数结果仍互为补数 + 0101 + 0101丢掉丢掉(mod24) (3) 补码定义补码定义 整数整数 x 为真值为真值n 为整数的位数为整数的位数 x补 补 = 0,x 2n x 0 2n+1 + x 0 x 2n(mod 2n+1) 如如x = +1010 x补 补 = 2 7+1 +( 1011000 ) = x补 补 = 0,1010 x = 1011000 1,0101000 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 1011000 100000000 小数小数 x 为真值为真值 x

9、 = + 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.0000000 (4) 求补码的快捷方式求补码的快捷方式 = 100000 = 1,011010101 + 1 = 1,0110 又又x原 原 = 1,1010 则则x补 补 = 24+1 1010 = 11111 + 1 1010 = 11111 10101010 当真值为当

10、真值为 负负 时,时,补码补码 可用可用 原码除符号位外原码除符号位外 每位取反,末位加每位取反,末位加 1 求得求得 + 1 设设 x = 1010 时时 (5) 举例举例 解:解:x = + 0.0001 解:由定义得解:由定义得 x = x补 补 2 = 1.0001 10.0000 例例 6.6 已知已知 x补 补 = 1.0001 求求 x 由定义得由定义得 例例 6.5 已知已知 x补 补 = 0.0001 求求 x = 0.1111 例例 6.7 解:解: x = x补 补 24+1 = 1,1110 100000 x原 原 = 1,0010 当真值为当真值为 负负 时,时,原码

11、原码 可用可用 补码除符号位外补码除符号位外 每位取反,末位加每位取反,末位加 1 求得求得 x补 补 x原原 ? x = 0010 = 0010 求求 x 已知已知 x补 补 = 1,1110 由定义得由定义得 真值真值 0, 1000110 1, 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补补

12、由小数补码定义由小数补码定义 = 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 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 1

13、101 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 x 为真值为真值n 为整数的位数为整数的位数 小数小数 x = + 0.1101 x反 反 = 0.1101 x = 0.1010 x反 反 = (2 2-4) 0.1010 = 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

14、.0000反 反= 0.0000 解:解: 同理,对于整数同理,对于整数+0反 反= 0,0000 例例6.9 已知已知 x反 反 = 1,1110 求 求 x 例例6.8 已知已知 x反 反 = 0,1110 求 求 x 解:解: 由定义得由定义得 x = + 1110解:解: = 1,1110 11111 = 0001 由定义得由定义得x = x反 反 (24+1 1) x = 0.0000 0.0000反 反= 1.1111 0反 反= 1,1111 + 0反 反 0反反 三种机器数的小结三种机器数的小结 对于对于正数正数,原码原码 = 补码补码 = 反码反码 对于对于负数负数 ,符号位

15、为符号位为 1,其其 数值部分数值部分 原码除符号位外每位取反末位加原码除符号位外每位取反末位加 1 补码补码 原码除符号位外每位取反原码除符号位外每位取反 反码反码 最高位最高位为为符号位符号位,书写上用,书写上用“,”(整数)(整数) 或或“.”(小数)将数值部分和符号位隔开(小数)将数值部分和符号位隔开 例例6.11 00000000 00000001 00000010 01111111 10000000 10000001 11111101 11111110 11111111 128 129 -0 -1 -128 -127 -127 -126 二进制代码二进制代码 无符号数无符号数 对应

16、的真值对应的真值 原码对应原码对应 的真值的真值 补码对应补码对应 的真值的真值 反码对应反码对应 的真值的真值 0 1 2 127 253 254 255 -125 -126 -127 -3 -2 -1 -2 -1 -0 +0 +1 +2 +127 +0 +1 +2 +127 +0 +1 +2 +127 +0 设机器数字长为设机器数字长为 8 位(其中位为符号位)位(其中位为符号位) 对于整数,当其分别代表无符号数、原码、补码和对于整数,当其分别代表无符号数、原码、补码和 反码时,对应的真值范围各为多少?反码时,对应的真值范围各为多少? 例例6.12 解:解: 已知已知 y补 补 求 求 y

17、补 补 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 = (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补 补连同符号位在内

18、, 连同符号位在内,末位加末位加 1 5. 移码表示法移码表示法 补码表示很难直接判断其真值大小补码表示很难直接判断其真值大小 如如 十进制十进制 x = +21 x = 21 x = +31 x = 31 x + 25 +10101 + 100000 +11111 + 100000 10101 + 100000 11111 + 100000 大大 大大 错错 错错 大大 大大 正确正确 正确正确 0,10101 1,01011 0,11111 1,00001 +10101 10101 +11111 11111 = 110101 = 001011 = 111111 = 000001 二进制二进

19、制补码补码 (1) 移码定义移码定义 x 为真值,为真值,n 为为 整数的位数整数的位数 移码在数轴上的表示移码在数轴上的表示 x移码 移码 2n+112n 2n 12n0 0 真值真值 如如x = 10100 x移 移 = 25 + 10100 用用 逗号逗号 将符号位将符号位 和数值部分隔开和数值部分隔开 x = 10100 x移 移 = 25 10100 x移 移 = 2n + x( (2nx 2n) = 1,10100 = 0,01100 (2) 移码和补码的比较移码和补码的比较 设设 x = +1100100 x移 移 = 27 + 1100100 x补 补 = 0,1100100

20、设设 x = 1100100 x移 移 = 27 1100100 x补 补 = 1,0011100 补码与移码只差一个符号位补码与移码只差一个符号位 = 1,1100100 = 0,0011100 1 0 0 1 当当 x = 0 时时 +0移 移 = 25 + 0 当当 n = 5 时时 可见,可见,最小真值的移码为全最小真值的移码为全 0 (4) 移码的特点移码的特点 用移码表示浮点数的阶码用移码表示浮点数的阶码 能方便地判断浮点数的阶码大小能方便地判断浮点数的阶码大小 = 1,00000 = 1,00000 = 000000 0移 移 = 25 0 +0移 移 = 0移移 100000移

21、 移 = 25 100000 最小的真值为最小的真值为 25= 100000 小数点不用专门器件表示,而按约定方式标出小数点不用专门器件表示,而按约定方式标出 一、定点表示一、定点表示 Sf S1S2 Sn 数符数符 数值部分数值部分 小数点位置小数点位置 Sf S1S2 Sn 数符数符 数值部分数值部分 小数点位置小数点位置 或或 定点机定点机小数定点机小数定点机整数定点机整数定点机 原码原码 补码补码 反码反码 (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) 二、浮

22、点表示二、浮点表示 N = Sr j浮点数的一般形式浮点数的一般形式 S 尾数尾数j 阶码阶码r 基数(基值)基数(基值) 计算机中计算机中 r 取取 2、4、8、16 等等 当当 r = 2N = 11.0101 = 0.110101210 = 1.1010121 = 1101.012-10 = 0.001101012100 计算机中计算机中 S 纯小数、可正可负纯小数、可正可负 j 整数、可正可负整数、可正可负 规格化数规格化数 二进制表示二进制表示 1. 浮点数的表示形式浮点数的表示形式 Sf 代表浮点数的符号代表浮点数的符号 n 其位数反映浮点数的精度其位数反映浮点数的精度 m 其位数

23、反映浮点数的表示范围其位数反映浮点数的表示范围 jf 和和 m 共同表示小数点的实际位置共同表示小数点的实际位置 jf j1 j2 jm Sf S1 S2 Sn j 阶码阶码S 尾数尾数 阶符阶符 数符数符 阶码的阶码的 数值部分数值部分 尾数的数值部分尾数的数值部分 小数点位置小数点位置 2. 浮点数的表示范围浮点数的表示范围 2( 2m1)( 1 2n) 2( 2m1)2n 2( 2m1)( 1 2n) 2( 2m1)2n 最小负数最小负数 最大负数最大负数 最大正数最大正数 最小正数最小正数 负数区负数区正数区正数区下溢下溢 0 上溢上溢上溢上溢 215 ( 1 2-10) 2-15 2

24、-10 215 ( 1 2-10) 设设 m = 4 n =10 上溢上溢 阶码阶码 最大阶码最大阶码 下溢下溢 阶码阶码 最小阶码最小阶码 按按 机器零机器零 处理处理 2-15 2-10 练习练习 设机器数字长为设机器数字长为 24 位,欲表示位,欲表示3万的十进制数,万的十进制数, 试问在保证数的最大精度的前提下,除阶符、数符各试问在保证数的最大精度的前提下,除阶符、数符各 取取1 位外,阶码、尾数各取几位?位外,阶码、尾数各取几位? 满足满足 最大精度最大精度 可取可取 m = 4,n = 18 解:解: m = 4,5,6, 15 位二进制数可反映位二进制数可反映 3 万之间的十进制

25、数万之间的十进制数 215 = 32768214 = 16384 215 0. 15位位 3. 浮点数的规格化形式浮点数的规格化形式 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左规左规 尾数左移尾

26、数左移 3 位,阶码减位,阶码减 1 右规右规 尾数右移尾数右移 3 位,阶码加位,阶码加 1 基数基数 r 越大,可表示的浮点数的范围越大越大,可表示的浮点数的范围越大 基数不同,浮点数的基数不同,浮点数的 规格化形式不同规格化形式不同 基数基数 r 越大,浮点数的精度降低越大,浮点数的精度降低 例如:例如: 最大正数最大正数= 215( 1210 ) 2+1111 0.1111111111 10 个个 1 最小正数最小正数 最大负数最大负数 最小负数最小负数 = 21521 = 215( 12 10 ) = 216 = 21521 = 216 2-1111 0.1000000000 9 个

27、个 0 2-1111 ( 0.1000000000) 9 个个 0 2+1111 ( 0.1111111111) 10 个个 1 设设 m = 4,n = 10,r = 2 尾数规格化后的浮点数表示范围尾数规格化后的浮点数表示范围 三、举例三、举例 例例 6.13 将将 + 写成二进制定点数、浮点数及在定点写成二进制定点数、浮点数及在定点 机和浮点机中的机器数形式。其中数值部分均取机和浮点机中的机器数形式。其中数值部分均取 10 位,位, 数符取数符取 1 位,浮点数阶码取位,浮点数阶码取 5 位(含位(含1位阶符)。位阶符)。 19 128 解:解:设设 x = + 19 128 二进制形式

28、二进制形式 定点表示定点表示 浮点规格化形式浮点规格化形式 x原 原 = 1, 0010; 0. 1001100000 x补 补 = 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 x = 1110100000 例例 6.14 将将 58 表示成二进制定点数和浮点数,表示成二进制定点数和浮点数, 并写出它在定点机和浮点机中的三种机器数及阶码并写出它在定点机和浮点机中的三种机器数及阶码 为移码、尾数为补码的形式(其他要求同上例)。为移码、尾数为补码的形式(其他要求同上例)。 解:解:设设 x = 58 二进制形式二进制形式 定点表示定点表示 浮点规格化形式浮点规格化形式 x原 原 = 1, 0000111010 x补 补 = 1, 1111000110 x反 反 = 1, 1111000101 x原 原 = 0, 0110; 1. 1110100000 x补 补 = 0, 0110; 1. 0001100000 x反 反 = 0, 0110; 1. 0001011111 定点机中定点机中浮点机中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论