数据编码与数据运算.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 数据编码和数据运算 2.1 定点数的编码和运算 定点数:小数点位置固定不变的数 定点整数:小数点定在最低位数的右面 定点小数:小数点固定在最高位数的后面,即纯小数表示 2.1.1 无符号数的编码 定点整数 数值表示: x = x0x1x2…xn xi={0,1}, 0≤i≤n x02n + x12n-1 + … + xn-121 + xn 数值范围 0≤x≤2n+1-1 例如: x=010101 其数值=24+22+20=21 定点小数 数值表示 x = x0 . x1x2…xn x0=0,xi={0,1}, 0≤i≤n x12-1 + … + xn-12-n+1 + xn2-n 数值范围 0≤x≤1-2-n 例如: x=0.10101 其数值=2-1+2-3+2-5=21/32 例2-1 设x=1010,y=-1010,求[x]补和[y]补。 解:根据补码的编码方法,正数的补码与它的二进制表示相同,所以加上符号位0后得 [x]补=01010 根据补码的编码方法,负数的补码的数值部分等于它的二进制位按位取反后在最低位上加1,符号位取反后为1,所以 [y]补=10110 定点小数的补码编码 x= x0.x1…xn 方法与定点整数的编码方式类似 最高位x0作为符号位 数值范围: -1 ≤ x ≤ 1 - 2-n 例 设x=0.1010,y=-0.1010,则 [x]补=0.1010,[y]补=1.0110 2.1.3 数据的存储与访问 数据类型 整型数、单精度和双精度浮点数、字符型 数据长度 单字节、双字节、字、双字、四倍字 字节存储顺序 大数端(big Endian)和小数端(little Endian)。 数据的存储方式 对齐的方式 非对齐的方式。 定点数的加减运算例子 例2-4 x=0.1010,y= -0.0011,用补码的加法求x+y。 解:[x]补=0.1010,[y]补=1.1101 [x]补 + [y]补 = 0.1010 + 1.1101 = 0.0111 x+y = 0.0111 例2-5 x = 0.1001,y = -0.0011,用补码的减法求x-y。 解:[x]补=0.1001,[y]补=1.1101,[-y]补=0.0011 [x]补 - [y]补 = [x]补 + [-y]补 = 0.1001 + 0.0011 = 0.1100 x-y = 0.1100 加减运算电路 避免数据的溢出的方法 增加数据的表示位数 例如数据6 在8位的计算机中表示 在16位计算机中表示为0000000000000110。 例如用补码表示-2时 在8位计算机中是1111 1110, 在16位计算机中是1111 1111 1111 1110。 符号扩展 数据溢出的概念与数据取模时的丢弃 数据运算中最高位的进位被丢弃并不一定是溢出 例如,两个负数的补码相加, 设x= -0110,即-610;y= -0101,即-510。 则[x]补=11010,[y]补=11011。 [x+y]补=10101 (mod 25),即-1110 运算结果正确,没有发生溢出 习题 教材第66页第7题 2.1.5 定点数的乘除运算 采用原码乘法 将符号位与数值位分开进行运算 运算结果的数值部分是乘数和被乘数数值位的乘积 运算结果的符号位是乘数和被乘数符号位的异或 进位保留乘法器 二进制除法 比较被除数(或部分余数)和除数大小的方法 恢复余数法 通过减法实现,不够减时再用加法恢复原来的部分余数。 加减交替法 除数每一步运算所得的余数ri = 2ri-1 - y。 当ri 0时,ri+1 = 2ri - y,上商1。 如果ri0,上商0,并加y,然后左移一位,再做减y运算,得到ri+1,即 ri+1 = 2(ri+y)-y = 2ri + y。 实现加减交替法的电路 2.2 浮点数的编码和运算 规格化的编码 原码 数据位的最高位为1 补码 小数点前后两位互不相同。 例如,尾数0.1010和1.0101是规格化的,而尾数0.0101和1.1010是非规格化的。 基数为2的浮点数规格化后,其尾数的绝对值在1/2到1之间 基数为R的浮点数规格化后,其尾数的绝对值在1/R到1之间。 浮点数的表示范围 浮点数的溢出表现为阶码的溢出 浮点数的上溢(overflow) 数据太大,以至于大于阶码所能表示的数据 浮点数的下溢(underflow) 数据太小,以至于小于阶码所能表示的数值时, 例2-11 对数据12310作规格化浮点数的编码,假定1位符号位,基数为2,阶码5位,采用移码,尾数10位,采用补码。 解:先将数据表示成M×RE的形

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档