资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 运算方法和运算器 *数据的表示方法 *定点和浮点加减运算 *定点乘运算 *定点除运算 *定点运算器的组成 第二章 运算方法和运算器 2.1 数据表示 2.1.1 概述 一、什么叫数据表示 是指能由计算机硬件直接识别的数据 类型,如定点数、浮点数等。而所谓“ 由硬件直接识别”意味着某种数据类型 可以用计算机硬件直接表示出来,并能 由计算机指令直接调用该数据类型。 二、数据的表示方法 n数值数据:能进行算术运算能得到明 确数值概念的数字数据。 n非数值数据:以数字数据形式进入计 算机的声音、图像、文字等信息。 2.1.2 数值数据的表示法 一、进位计数制(简称进制)及相互转换 1、进制的概念 r进制: 有0,r-1 共 r 个单位数(unit) ; 逢 r 进一。 任何一个r进制数N可以表示为: 2.1.2 数值数据的表示法 若r=2,二进制数,各位的权是以2为底的幂; 若r=8,八进制数,各位的权是以8为底的幂,有 八个数码:0、1、2、3、4、5、6、7; 若r=10,十进制数,各位的权是以10为底的幂; 若r=16,是十六进制数,其各位的权是以16为底 的幂,有16个数码:0、1、2、3、4、5、6、7、8 、9、A、B、C、D、E、F。 为了明确表示一个数所采用的进位计数制,可以 该数的后面加上下标 (B)、(Q)、(D)、(H),分别 表示该数为二进制、八进制、十进制和十六进制 2.1.2 数值数据的表示法 2、为什么计算机中采用二进制 (1)运算简单; (2)易于物理实现(容易找到合适的器件) ; (3)易于表示逻辑值的真与假(布尔代数) 。 2.1.2 数值数据的表示法 3、进制转换 r进制数转换为十进制数:各位按权展开求和 ; 例1 .分别把二进制数1011.01和十六进制数 F0.C用十进制表示 十进制数转换为r进制数:整数部分和小数部 分分别进行转换 十进制数转换为r进制数 整数部分的转换步骤: 把r写成十进制数; 将N除以r,记录商和余数,并用r进制表示余 数,这余数便是用r进制表示的数的最低位数 字; 把上次的商进行中所述除以r取余的运算, 用r进制表示余数;重复这种运算直到商为0, 这时的余数即为十进制数N用r进制表示时的最 高位数字。 例2. 把十进制数103用二进制表示 例3. 把十进制数506用十六进制表示 十进制数转换为r进制数 小数部分的转换步骤: 把r写成十进制数; 将N乘以r,记录积的整数部分和小数部分, 并用r进制表示整数部分,该整数即为转换后r 进制小数的最高位; 把上次积的小数部分进行中所述乘以r取整 的运算,用r进制表示积的整数部分;重复这 种运算直到积的小数部分为0,或者达到所要 求的位数,这时的整数部分即为十进制数N转 换成r进制小数的最低位。 例4. 把十进制0.8125用八进制表示 二进制与八进制、 十六进制的相互转换 从二进制转换成十六进制时,从小数点位置开始 ,整数部分向左,小数部分向右,每四位二进 制数为一组用一位十六进制的数字来表示,不 足四位的用0补足,就是相应十六进制的表示 。 从二进制转换成八进制时,从小数点位置开始, 整数部分向左,小数部分向右,每三位二进制 数为一组用一位八进制的数字来表示,不足三 位的用0补足,就是相应八进制的表示。 例5. 把二进制11011010111.11101用十六进制表示 例6. 把八进制数62.31用二进制表示 2.1.2 数值数据的表示法 二、数的机器码表示 (一)符号数、机器数、真值 1、真 值:带有正、负号的数据; 2、机器数:符号位数值化了的数; (因为计算机只认识0和1,不认识 + 和 - ) 例:1101若为原码机器数,则其真值为 5或 - 101,后者往往也叫符号数。 二、数的机器码表示 (二)定点数与浮点数 1、定点数(Fix-Point Number) (1)含义:定点、浮点的“点”都指二 进制数中的小数点。定点指小数点位置 固定。 (2)常见的两种定点数: n定点整数(Integer) n定点小数(Fraction) 1、定点数 符号位 数值部分 小数点位置小数点位置 小数点位置小数点位置 符号位 数值部分 n注意小数点均为隐含表示。 定点整数(Integer):小数点固定于最低位右边 Dn-1Dn-2D0 定点小数(Fraction):小数点固定于最高有效位左边 Dn-1Dn-2D0 (3)定点数常见的机器码编码形式 n定点、浮点表示解决的是小数点的表示方法; 而编码解决的是符号位如何数值化的问题。 n但编码后会对运算带来什么样的影响?于是先 后使用了符号位编码时数值位不变、符号位编 码时数值位按一定规律变化的几种不同的编码 方法。这就是应该了解的原码、反码、补码、 移码等编码方案。数X的原码记作X原,反码 记作X反,补码记作X补。 定点整数-原码 定义:对于一个二进制数而言,若用最高位表示数的符号(常 以0表示正数,以1表示负数),其余各位表示数值的本身, 则称为该二进制数的原码表示法。 (1)设某二进制数为X = + Xn-2Xn-3.X1X0B ,即为正数 则:X原 = 0Xn-2Xn-3.X1X0B = X 注意:+0原 = 00.00B(共n位)= 0 (2)设某二进制数为X = - Xn-2Xn-3.X1X0B ,即为负数 则:X原 = 1Xn-2Xn-3.X1X0B = 100.00B + Xn-2Xn-3.X1X0B = 2n-1 - X 注意:-0原 = 10.00B(共n位) 数的表示范围: -2n-1+1X2n-1-1 则原码表示的定义是: x 2n-1 x = 2n-1 + |x|-2n-1+1 x 0 0 x 2n-1-1 x原 = 定点整数-反码 定义:正数反码与原码相同。负数反码等于其原码符号位不变 其余位取反。 (1)设某二进制数为X = + Xn-2Xn-3.X1X0B,即为正数 则:X反 = X原 = 0Xn-2Xn-3.X1X0B = X 注意:+0反 = +0原 = 00.00B(共n位)= 0 (2)设某二进制数为X = - Xn-2Xn-3.X1X0B ,即为负数 则:X反+ |X| = 2n - 1 所以X反 = 2n - 1 + X 注意:-0反 = 11.11B(共n位) 反码数的表示范围: -2n-1+1X2n-1-1 x (2n 1) + x -2n-1+1 x 0 0 x 2n-1-1 x反 = 反码表示的定义是: 概念 对时: (假设对为1时) 一是将时针退 10-9=1 ; 一是将时针向前拨 10+3=1 这两种方法都能对准到1时。 结论:负数用补码表示时, 可以把减法转化为加法。 定点整数-补码 由此可以看出,减9和加3是等价的,就是说3是(-9)对 12的补码,可以用数学公式表示: -9+3 (mod 12) 模的概念 计算机中运算器、寄存器、计数器都有一定的位 数,不可能容纳无限大的任意数。当运算结果超出实 际的最大表示范围,就会发生溢出,此时所产生的溢 出量就是模(module)。 定点小数的溢出量为2,即以2为模; 一个字长为n位的定点整数的溢出量为2n,即 以2n为模。 定点整数-补码 定义:假定某机器的字长为n位,那么它的模就是2n,它是一 个n+1位数100.0B,由于计算机只能表示n位数,因此数2n 在计算机中只能以n个零表示,而该数最左边的1自动丢失 。由以上例子及讨论所得:X补 2n X n对于正数X,X补 X原 X反 = X n对于负数X,X补 2nX 0|X| n对于0:0补 2n0 0+0 0 对于0:0补 2n(0) 00 0 总结:已经解决了正负零问题(归一化)。 数的表示范围:-2n-1X2n-1-1 x 2n + x = 2n |x| -2n-1 x 0 0 x 2n-1-1 x补 = (mod 2n) 补码表示的定义是: 例 以定点整数为例, 说明各种编码表示的范围。 真值真值原码反码补码移码 +127 +1 +0 0 -1 -127 -128 +0111,1111 +0000,0001 0000,0000 0000,0000 -0000,0001 -0111,1111 -1000,0000 0111,1111 0000,0001 0000,0000 1000,0000 1000,0001 1111,1111 不能表示 0111,1111 0000,0001 0000,0000 1111,1111 1111,1110 1000,0000 不能表示 0111,1111 0000,0001 0000,0000 0000,0000 1111,1111 1000,0001 1000,0000 1111,1111 1000,0001 1000,0000 1000,0000 0111,1111 0000,0001 0000,0000 定点小数-原码 Ns N1 N2 Nn 定义: X 原 = n例:X = 0.10110 ; -0.10110 ; 0.0000 X 原 = 010110 ; 110110 ; 00000 10000 n结论:原码为符号位加数的绝对值,0正1负 原码零有两个编码,+0和 -0编码不同 原码难以用于加减运算,但乘除方便 X 1 - X -1 X 0 0 X1 定点小数-反码Ns N1 N2 Nn 定义: X 反= n 例:X = 0.10110 ;-0.10110 ;0.0000 X 反 = 010110 ; 101001 ; 00000 11111 n结论:反码为符号位跟数每一位的反,0正 1 负 反码零有二个编码,分+0 和 -0 反码难以用于加减运算 X (2-2-n) + X -1 X 0 0 X1 定点小数-补码Ns N1 N2 Nn 定义: X 补 = n例:X = 0.10110 ;-0.10110 ;0.0000 X 补 = 010110 ;101010 ;00000 结论:补码最高一位是符号位,0正 1负 补码表示为 2*符号位 + 数的真值 补码零只有一个编码,故能表示 -1 补码能很好地用于加减(乘除)运算 X 2 + X -1X0 MOD 2 0X1 (3)定点数常见的机器码编码形式 例:X = - 0.101101, Y=+101101 X原=1.101101, Y原=0101101 X反=1.010010, Y反=0101101 X补=1.010011, Y补=0101101 三种编码方案简要比较: 正数相同,负数有别。补码中“0”有唯一的机器表示 ;补码的最大优点在于其符号位可以与数值位共同参 与运算而易于得到正确的补码结果。移码我们放在浮 点数的内容中去了解。 (4)定点数的表示范围 表示数的范围非常有限 - 引入浮点数 2、浮点数 (1)浮点数的一般形式 nN=(R 的E次幂)x M 其中,N:要表
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号