计算机组成技术 哈工大第3章01.ppt_第1页
计算机组成技术 哈工大第3章01.ppt_第2页
计算机组成技术 哈工大第3章01.ppt_第3页
计算机组成技术 哈工大第3章01.ppt_第4页
计算机组成技术 哈工大第3章01.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1 计算机组成技术 第3章 计算机中的数及其运算方连众 2 第3章计算机中的数及其运算 3 1计数制不讲留作业3 2不同计数制之间的转换不讲留作业3 3机器数的浮点与定点表示法3 4数的各种编码3 5数的逻辑运算 3 3 1计数制 3 1 1十进制 Decimal 3 1 2二进制 Binary 3 1 3八进制 OctalSystem 和十六进制 HexadecimalSystem 基数 基本数字集合基值 集合的大小数码 基本数字数位 该数码在数中的位置进位制 权 基值的幂 形式 N dn 1rn 1 dn 2rn 2 d1r1 d0r0 d 1r 1 d mr m 4 3 1 1十进制 Decimal 十进制是由十个数码 0 1 2 3 4 5 6 7 8 9及数码的位置 位权两者来决定其数值的 例如 245 25 10 2 102 4 101 5 100 2 10 1 5 10 2 其中2 4 5 2 5称为系数 10称为基 102 101 100 称为权 十进制的特点是 逢十进一 借一当十 一个十进制表示的数其数值为 数值 数码 位权 5 3 1 2二进制 Binary 二进制只有两个数码 0和1 基为2 其特点是 逢二进一 借一当二 二进制数与十进制数的对应关系 从上表可以看出 表示同一数值 十进制的位数少 二进制的位数多 且数值越大 用十进制和二进制表示数相差也越多 计算机之所以采用二进制表示信息 原因可以归纳为以下4点 1 二进制是最节省的计数制之一2 二进制数便于物理元件的实现3 二进制数运算简单4 便于实现逻辑运算 6 3 1 3八进制和十六进制 二进制的缺点是书写冗长 不便阅读 于是便引出了八进制和十六进制 对于汇编语言程序员来说 最常用的数字编码是十六进制码 无论存储器地址还是存储器内容中的数据或指令 多是用十六进制码表示的 由于一个数可有多种进制表示 我们用下标来加以区别 正如上述例子中所采纳的 F5 4 16 245 25 10 365 2 8 11110101 01 2等 也可以用D表示十进制数 H表示十六进制数 O表示八进制数 B表示二进制数 7 3 2不同计数制之间的转换 3 2 1各种数制转换成十进制3 2 2将十进制转换成其它数制3 2 3二进制 八进制 十六进制之间的转换 8 3 2 1各种数制转换成十进制 1 1按 权 转换法 例1 11001 11 2 1 24 1 23 0 22 0 21 1 20 1 2 1 1 2 2 16 8 1 0 5 0 25 25 75 10例2 746 3 8 7 82 4 81 6 80 3 8 1 448 32 6 0 375 486 375 10例3 A5B 8 16 10 162 5 161 11 160 8 16 1 2560 80 11 0 5 2651 5 10 1 2基值重复相乘相除法 整数部分用基值重复相乘法 设 N dnrn dn 1rn 1 d1r1 d0r0 则N dn r dn 1 r d1 r d0例1 746 8 7 8 4 8 6 60 8 6 486 10 小数部分用基值重复相除法 设 N d 1r 1 d 2r 2 d mr m 则N r 1 d 1 r 1 d 2 r 1 d m例1 0 11 2 1 2 1 2 1 5 2 0 75 10 9 3 2 2将十进制转换成其它数制 将整数和小数部分分开处理 整数部分用基值重复相除的方法 简称除基取余法 小数部分用基值重复相乘的方法 简称乘基取整法 10 3 2 3二进制 八进制 十六进制之间的转换 因为有8i 23i 16i 24i 所以一位八进制相当于三位二进制 一位十六进制相当于四位二进制 11 3 3机器数的浮点与定点表示法 机器数把一个数 计算机中的数是用二进制来表示的 数的符号也是用二进制表示的 连同其符号在机器中的表示加以数值化的数 3 3 1数的符号和小数点的表示3 3 2原码 补码和反码3 3 3BCD码3 3 3奇偶校验码3 3 4ASCII码 根据不同的用途 计算机可以采用不同的码制来表示 表示数字 原码 补码 反码 人机交互 二 十进制编码 BCD 校验功能 奇偶校验码 纠错功能 汉明码表示字符 ASCII码 表示汉字 汉字编码 12 3 3 1数的符号和小数点的表示 计算机中的有符号数的符号一般用数的最高位来表示 0 正 1 负 符号数码化的数称为机器数 其所代表的数本身称为真值 特点如下 0 0101011和1 0101011 1 字长决定数的表示范围 2 符号数字化 参与运算 3 小数点按约定方式标出 1 有符号数与无符号数2 定点数表示3 浮点数表示4 规格化数与溢出 13 1 有符号数与无符号数 无符号数 机器字长所有位都表示数值 设 N 800000000 11111111表示0 255 0 X 255有符号数 机器字长的最高位表示符号 其它位表示数值 设 N 8位正数 01111111 00000000表示 127 0负数 10000000 11111111表示 0 127有符号数的范围 127 127 包含有 0 0 127 X 127 14 2 定点数表示 定点数指小数点位数保持固定不变 常有两种表示 纯小数 1 1010101 所有数均为小数 小数点左边为符号位纯整数 11110111 所有数均为整数 最高位为符号位 01111111 11111111表示 1 2 7 1 2 7 01111111 11111111表示 127 127 15 3 浮点数表示 小数点是个移动 由阶码和尾数组成 任意一个有符号的二进制数N的表示形式 N S 2 J 尾数 底数 阶码 15141312111098765432101000101101011010 阶符 阶值 尾数值 尾符 可以看出 尾数位数越多精度越高 阶码位数越多数表示的范围越大 16 4 规格化数与溢出 规格化数 如果尾数的第一位有效数字为1 该数是规格化的 反之是非规格化的 1 1001011 0 1010011 1 0100101 0 0100101溢出下溢 阶码超过机器能表示的最小数 将此数当作0 上溢 阶码超过机器能表示的最大的绝对值 溢出处理 17 3 3 1原码 补码和反码 原码 补码 反码 为了表示数的符号 可在数的最高位之前增设一位符号位 符号位为0表示正数 为1表示负数 这样规定的二进制码 我们称为原码 例如 x1 1011010则 x1 原 0 1011010 x2 1011010则 x2 原 1 1011010 补码的特点 正数的补码 即真值的最前面加一符号位 0 负数的补码 即真值逐位求反最低位加1 最前面加一符号位 1 小结 机器数的最高位是符号位 0为正 1为负 正数 其原码 补码 反码表示形式相同 负数 x 原 符号位为1 数值部分与真值绝对值相同 x 补 符号位为1 数值部分为将真值尾数逐位取反 最低位加1 x 反 符号位为1 尾数部分为将真值的尾数按位取反 反码的数学定义 设真值为x 机器字长位n位 则整数的反码 x 反 x0 x 2n 1 2n 20 x 2n 1 x 0小数的反码 x 反 x0 x 1 2 2 n 1 x 1 x 0 18 3 3 2BCD码 BCD码 即BinaryCodedDecimal 意为二进制码表示的十进制数 常用的BCD码为8421BCD码 即每位十进制数码均用四位二进制数来表示 四位二进制数从高到低的权值分别为23 22 21 20 即8421 由于它们与二进制数位权一样 故又称为自然的BCD码 BCD码的用途如下 在以二进制工作的机器内 数从十进制到二进制或从二进制到十进制转换时 BCD码用作中间表示 它可以表示数 并可在计算机内直接进行运算 19 3 3 3奇偶校验码 必须强调 奇 偶 校验码只能发现单数 奇数 个错误 而不能检查出偶数个错误 也不能查出出错的位是哪一位 因此 它不具有纠正错误码的能力 但它却很常用 因为它占用的位数少 只需一位 编码简单 控制亦方便 虽然它不具备纠错的能力 但计算机只要发现数据或指令有误 可直接丢弃它 重新去获取或计算即可 所以奇偶校验码被计算机存储 传送等广泛使用 20 3 3 4ASCII码 发明ASCII码 AmericanStandardCodeforInfoemationInterchange 美国标准信息交换码 就是为了代表我们与打字机键盘相联系的所有的符号 21 3 3 5其它编码 汉字编码汉明码循环校验码 计算机内部 由外到内 由内到外 输入方式 大键盘 手写 语音 小键盘输入编码 拼音 字形 数字内部表示 国标码 机器内码 输出显示 字模点阵码字模点阵码与机器内码是多对一关系 具有检测能力和纠错能力信息位n 检测位k 总长度k n位 又称CRC码 CyclicRedudancyCheck 检测和纠错能力强 设计思想 让校验码 有效信息位加上校验位 除以某一事先约定好的代码 若能除尽则表明校验正确 否则校验出错 出错位由余数指出 22 3 4数的各种编码 8086能够处理三种类型的数据 无符号二进制数 有符号二进制数 无符号十进制数 3 4 0数据类型3 4 1无符号二进制数3 4 2有符号二进制数3 4 3无符号十进制数 BCD码 23 3 4 0数据类型 整数表示实数表示十进制数的表示 字符型整数 长度8bit 表示范围 有符号 128 127 无符号 0 255单字整数 16bit 表示范围 32768 32767 0 65535双字整数 32bit 表示范围 2 109 2 109 1 0 4 109 1 短实数 浮点数 32位 符号位 1 偏移阶码 8 有效位 23 长实数 双精度数 64位 符号位 1 偏移阶码 11 有效位 52 偏移阶码 真实阶码 偏移量 短127 长1023 0 非组合 非压缩 编码组合编码 压缩 24 3 4 1无符号二进制数 无符号二进制数有两种字长 即8位及16位 八位最小值0 八位最大值255 十六位最小值0 十六位最大值65535 25 3 4 2有符号二进制数 无符号二进制数有两种字长 即8位及16位 八位最小值 128 八位最大值127 十六位最小值 32768 十六位最大值32767 26 3 4 3无符号十进制数 BCD码 无符号十进制数是每位数用4位二进制码来表示 在8086中 它的存放有两种形式 一种是压缩格式的 一种是非压缩格式的 压缩型 非压缩型 无符号压缩十进制数是每4位存放一位十进制数 一个字节存放两位十进制数 字节的十进制数范围是0 99 无符号非压缩十进制数是一个字节存放一位十进制数 数值放在低4位中 高4位一般清零 尤其对乘除法运算时 高4位必须是零 双字节表示的非压缩格式的十进制数 其取值范围是0 99 27 3 5数的逻辑运算 数的运算可分为两类 一类为算术运算 一类为逻辑运算 逻辑运算的特点是按位进行 每位得出一个独立的结果 对其他位无影响 因此逻辑运算不存在进位 借位 溢出等问题 3 5 1逻辑非 求反 NOT3 5 2逻辑加OR 3 5 3逻辑乘 即逻辑与 AND3 5 4逻辑异或 按位加 XOR 28 3 5 1逻辑非 求反 NOT 逻辑非可用逻辑电路来实现 通常 我们称实现求反的逻辑电路为inversegate 非门 其电路图的国标符号及国际表示符号如图 例 10110101 01100010 求其非 解 01001010 10011101 29 3 5 2逻辑加OR A B两个变量中 只要有一个变量取值为1 则它们 或 运算的结果就是1 若有两数X xnxn 1 x1x0 Y ynyn 1 y1y0 则X Y两个数的逻辑加Z XORY znzn 1 z1z0 且zi xi yi i 0 1 n 例若X 10110101 Y 01100010 求XORY 解XORY 10110101OR01100010 11110111 30 3 5 3逻辑乘 即逻辑与 AND 与门 ANDgate 电路符号由图所示 其运算规则 31 3 5 4逻辑异或 按位加 XOR 逻辑异或又称 按位加 可用符号 来表示 其 ExclusiveORgate 门电路符号如图所示 32 3 6数的算术运算 逻辑运算按位进行运算算术运算 加 减 乘 除 各位之间互相关联有借位 进位 3 6 1定点加减运算及溢出判断3 6 2定点乘除运算 33 3 6 1定点加减运算及溢出判断 定点加法运算计算机中的书的加减法是以补码形式进行的 小数和整数原理相同 以小数为例 计算公式 模取4 1 X 1 1 Y 1 X 补 Y 补 X Y 补 mod4 模为什么取4 采用双符号位11 001101 34 证明公式 若模取4 1 X 1 1 Y 1 则 X 补 Y 补 X Y 补 mod4 证明 分三种情况 当1 X 0 1 Y 0时当1 X 0 0 Y 1 或0 X 1 1 Y 0 时当0 X 1 0 Y 1时 35 当1 X 0 1 Y 0时 1 X 0 1 Y 0 2 X Y 0又 由补码定义可知 X 补 X Y 补 Y X 补 Y 补 X Y X Y 补 36 当1 X 0 0 Y 1 或0 X 1 1 Y 0 时 1 X 0 0 Y 1 X 补 X Y 补 4 Y X 补 Y 补 X 4 Y X Y 补 若X Y 0则X Y 4 X Y mod4 X 补 Y 补 X Y X Y 补 mod4 若 1 X YX 1 1 Y 0同上证 37 当0 X 1 0 Y 1时 0 X 1 0 Y 1 0 X Y 2则可知 X 补 4 X Y 补 4 Y X 补 Y 补 8 X Y 4 X Y 补 X Y 补 mod4 在模4的意义下 任意两个数的补码之和等于此二数和的补码 38 例题 例1已知X 0 101010 Y 0 001001 求X Y 例2已知X 010101 Y 000110 求X Y 39 2 定点数减法运算转化减法运算公式 X Y 补 X Y 补 X 补 Y 补 mod4 例1已知X 0 101100 Y 0 100111 求X Y 例2已知X 010101 Y 011010 求X Y 40 3 溢出判断 当两个正数相加为负数 则结果出错 即产生了溢出 例5已知X 0 1010101 Y 0 0110010 求X Y 解 x 补 0 1010101 y 补 0 0110010 0 1010101 0 01100101 0000111 产生溢出 X Y 补 1 0000111X Y 0 1111001 41 双符号位溢出判断 采用双符号位 即模4补码时 判断溢出的法则为 两符号位不同 为溢出 运算结果 如 00 xxxxxx为正数 如 11 xxxxxx为负数 如 01 xxxxxx为正溢出 如 10 xxxxxx为负溢出 首位符号决定 结果的正负 42 例6 已知 1 X 0 1001 Y 0 1101 2 X 1110 Y 1110判断相加后有没有溢出 双符号位溢出判断 43 单符号位溢出判断 溢出判断法则 相同符号相加得异号为溢出 两个符号相反的数相加 不会产生溢出 两个符号相同的数相加 正数相加结果为1 XXXXXXX 为正溢出 负数相加结果为0 XXXXXXX 为负溢出 上面例6 已知 1 X 0 1001 Y 0 1101 2 X 1110 Y 1110判断相加后有没有溢出 双符号位溢出判断相对简单 44 3 6 2定点乘除运算 乘除法运算 加法 移位原码一位乘法原码一位除法 45 原码一位乘法 十进制手算 二进制乘法口诀 一一得一 其它为零 符号为 同号为正 异号为负 乘数逐位乘与被乘数 部分积乘权累加 数学表示 X XSX Y YSY Z ZSZ X Y XS YS X Y 例7已知X 0101 Y 1101 求Z X Y 46 计算机运算与手算的区别 解决办法 累加部分积左移改为右移演示 手算 有足够的纸张 没有足够的寄存器 中间结果 47 机器中实现步骤 部分积初始值 0000 已知X 0101 Y 1101 求Z X Y 0101 0101 00101SHR1bit 0000 00101 000101SHR1bit 0101 011001 0011001SHR1bit 0101 1000001 01000001SHR1bit Z XS YS X Y 11000001 根据此例总结出原码乘法法则 从乘数最低位开始 逐位乘与被乘数 每做完一次乘运算 即累加部分积 每累加一次后 部分积右移一位 N位乘数进行n次乘 累加 移位运算 最后得到乘积的绝对值 符号为两数的符号异或运算值 48 原码一位除法 原码一位除法与乘法相似X XSX Y YSY Z X Y ZSZ ZS XS YS

温馨提示

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

评论

0/150

提交评论