上海交通大学计算机组成课件4

上传人:第*** 文档编号:48798989 上传时间:2018-07-20 格式:PPT 页数:76 大小:793KB
返回 下载 相关 举报
上海交通大学计算机组成课件4_第1页
第1页 / 共76页
上海交通大学计算机组成课件4_第2页
第2页 / 共76页
上海交通大学计算机组成课件4_第3页
第3页 / 共76页
上海交通大学计算机组成课件4_第4页
第4页 / 共76页
上海交通大学计算机组成课件4_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《上海交通大学计算机组成课件4》由会员分享,可在线阅读,更多相关《上海交通大学计算机组成课件4(76页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据编码上海交通大学电子信息学院3.1 数制的转换 十进制数 采用十个计数符号 计数规则 逢十进一 一个n位的十进制数x0 x1xn-2 xn-1代表的数值 为:x0*10n-1 + x1 * 10n-2 + + xn-2 * 101 + xn-1 * 100二进制数 采用2个计数符号 逢2进1 一个n位的二进制数x0 x1xn-2 xn-1代表的 数值为:x0*2n-1 + x1 * 2n-2 + + xn-2 * 21 + xn-1 * 20r进制数 采用r个计数符号 逢r进1 一个n位的r进制数x0 x1xn-2 xn-1代表的数 值为:x0*rn-1 + x1 * rn-2 +

2、 + xn-2 * r1 + xn-1 * r00 xi r-1 (0in-1) 有小数的情形数制转换 将二进制数转换成八进制数 从小数点的位置开始 每三位一组分别转换成相应的八进制数的计数符号 不足三位时补0 将二进制数转换成十六进制数 四位一组进行转换 例 0010101102=1268=5616数制转换 将八进制数转换成二进制数 从小数点的位置开始 每一位八进制数分别转换成三位二进制数 将八进制数转换成二进制数 十进制数转换成二进制数 整数部分采用除2取余法 小数部分采用乘2取整法x02n-1 + x12n-2 + + xn-221 + xn-120数制转换 十进制数转换成八进制数 十进

3、制数转换成十六进制数 八进制数转换成十进制数 十六进制数转换成十进制数习题 3.2 3.3机器数 计算机中表示的二进制数据真值 一个机器数所代表的实际数值定点数 定点整数 定点小数3.2 定点数的编码机器数 无符号数 半字、字、双倍字、四倍字 有符号数 原码、反码、补码、移码 1位符号位无符号数的编码 定点整数数值表示x = x0x1x2xnxi=0,1, 0inx02n + x12n-1 + + xn-121 + xn数值范围0x2n+1-1无符号数的编码 定点小数数值表示x = x0 . x1x2xn x0=0,xi=0,1, 0in x12-1 + + xn-12-n+1 + xn2-n

4、数值范围0x1-2-n有符号数的编码 原码 反码 补码 移码1. 原码表示法特点:简便编码方法(加符号位) 例:3原 = 00000011 -3原= 100000111. 原码表示法 零有两种表示方式例 设x=101010,y= -101010,求x原和y原解: x原=00101010y原=10101010例 设x=0.1010,y= -0.1010,求x原和y原解: x原=0.101010y原=1.1010102. 补码表示法特点:便于运算 例:3补 = 00000011 -3补= 11111101 2s complement coding2. 补码表示法 方法1 正数:直接取其原来的二进制

5、码(加符号位0) 负数:对其二进制码按位取反之后再在最低位加1例: 010101补= 00010101-010101补= 11101010+1 = 11101011 方法2 正数:直接取其原来的二进制码 负数:从二进制码的最低位开始,对遇到的0和第一个1 取其原来的二进制编码,从第一个1以后开始直到最高位 均取其相反编码。例:101010补= 00101010-101010补= 11010110定点小数的补码编码 x= x0.x1xn 数值范围:-1 x 1 - 2-n例 设x=0.101010,y=-0.101010, 求x补和y补。解:x补=0.101010y补=1.010110补码求值的

6、方法 公式法x = -x02n + x12n-1 + + xn-12 + xn例如:10000100的真值为-128+4=-124 求补法x补与-x补的关系例: x补=11111100-x补=00000100-x=4x=-4模4补码例: 0.1010110补=00.1010110-0.1010110补=11.01010103. 反码表示法例:1010反 = 01010-1010反= 101011s complement coding3. 反码表示法 编码方法 正数的反码与原码相同 负数的反码是将二进制位按位取反 数值范围-2n +1 x 2n -1 定点小数-1 + 2-n x 1-2-n 零

7、有两个编码:0000和11114. 移码表示法 编码方法x移 = 2n +x 数值范围-2n x 2n - 1 符号位:1表示正号,0代表负号 0有惟一的编码 保持了数据原有的大小顺序 定点小数没有移码定义4. 移码表示法例 设x=101010,y= -101010,求x移和y移。解:x移=1000000+101010=10101010y移=1000000+(-101010)=10000000-0101010=010101104种编码 的例子数据真值与数据编码 数据的真值中可以把最高位的0省略 数据编码中不能忽略任何位置上的0或1 数据编码的最高位代表数据的符号 数据真值的最高位则不代表符号

8、x表示真值 xxx表示编码练习 求以下补码所代表的真值p 0.111111p 1.100000p 1.011111p 1.000000习题: 3.103.3 浮点数的编码 E的编码:移码或补码 S与M的编码:原码或补码 R进制的含义:多个二进制位构成一组,代表一个R进制位 例:0 00111 1100000000或 00111, 1.1100000000浮点数的编码 规格化0.10102 = 0.101020 = 0.010121要求数值中小数点后第一位为非零为了在尾数中表示最多的有效数据位为了数据表示的唯一性 机器零全部为0特殊的数据编码规格化的编码 基数为2的浮点数规格化 尾数的绝对值在1

9、/2到1之间 基数为R的浮点数规格化 尾数的绝对值在1/R到1之间 原码 数据位的最高位为1 补码 小数点前后两位互不相同 尾数0.1010和1.0101是规格化的 尾数0.0101和1.1010是非规格化的x.1xxxxxx0.1xxxxxx1.0xxxxxx规格化的编码例3-5 对数据12310作规格化浮点数的编码,假定1位符 号位,基数为2,阶码5位,采用移码,尾数10位, 采用补码。解:12310 = 11110112 = 0.11110110002277移=10000+00111 = 101110.1111011000补=0.1111011000123浮=0 10111 111101

10、1000规格化问题设尾数采用6位规格化的二进制代码 当R=2时,有几种规格化的尾数? 当R=8时,有几种规格化的尾数?1 X X X X X0 0 1 X X X 0 1 0 X X X1 1 1 X X X浮点数的表示范围 浮点数的溢出表现为阶码的溢出 浮点数的上溢(overflow) 数据大于阶码所能表示的数据 浮点数的下溢(underflow) 数据小于阶码所能表示的数值时浮点数的表示范围与表示精度 浮点数表示法可以扩大数值表示的范围 浮点数表示法未增加表示数值的个数 绝对值越大,浮点数分布越稀疏 阶码位数越多,数据表示的范围就越大 尾数位数越多,数据表示的精度越高浮点数的表示范围与表示

11、精度例:浮点数基数为2,有1位符号位、4位阶码和4位尾数代码, 阶码采用移码表示,求数值表示范围及可表示的数据个数。解:最小规格化正尾数:最大规格化正尾数:最大阶码:最小阶码:最小正值:最大正值:尾数个数:数值个数:2-1 1-2-47 -82-1*2-8(1-2-4)*27 *24*24*24*2+1浮点数的表示范围与表示精度例:浮点数基数为8,有1位符号位、4位阶码和6位二进制 尾数代码,阶码采用移码表示,求数值表示范围及可表 示的数据个数。解: 最小规格化正尾数:最大规格化正尾数:最大阶码:最小阶码:最小正值:最大正值:尾数个数:数值个数:8-1 1-2-67 -8 8-1*8-8(1-

12、2-6)*87(1-1/8)*26(1-1/8)*26*24*2+1浮点数的表示范围与表示精度例 以R为基数,有1位符号位、p位阶码和m位二进制尾数代码的浮 点数,阶码采用移码表示,求数值表示范围及可表示的数据个 数。解:最小规格化尾数:1/R最大规格化尾数:1 - 2-m最大阶码:2p-1- 1最小阶码:-2p-1最小正值:最大正值:规格化尾数个数为2m(R-1)/R可表示的数据个数为2p+m+1(R-1)/R +1。浮点数标准(IEEE754) 三种格式 短实数、长实数、临时实数 无定义数据(NaN)发信号的NaN,不发信号的NaN 无穷大 +INF, -INF 规格化数(-1)s1.f2

13、e-127 非规格化数(-1)s0.f2e-126浮点数标准(IEEE754)浮点数标准(IEEE754)IEEE754浮点数的范围浮点数标准例3-7 将十进制数-0.75表示成单精度的IEEE754标准代码。解:-0.75=-3/4=-0.112=-1.12-1=(-1)1(1 + 0.1000 0000 0000 0000 0000 000)2-1=(-1)1(1 + 0.1000 0000 0000 0000 0000 000)2126-127s=1,e=12610=011111102,f = 1000 000。1 01111110 10000000000000000000000浮点数标

14、准例3-8 将如下IEEE754 单精度浮点数用十进制数表示:1 10000001 01000000000000000000000解:s=1,e=129,f = 1/4 = 0.25,(-1)1(1+0.25)2129-127= -11.2522= -1.254= -5.0习题: 3.15 3.19 3.233.4 文字的编码 1. 西文字符的编码 ASCII码 2. 汉字的编码 输入码 数字编码、拼音码和字形码 机内码 用于汉字信息存储、交换、检索等操作 3. 十进制数的编码GB 180302000年公布的汉字编码国家标准 收录了27484个汉字 总编码空间超过150万个码位 兼容GB 23

15、12单字节编码 使用0016至7F16码字(ASCII码)双字节编码 首字节编码从8116至FE16 尾字节编码分别是4016至7E16和8016至FE16四字节编码 第二个字节部分采用3016到3916之间的编码 四字节编码的范围为8130813016到FE39FE391681FE007F407E81FE80FE81FE303981FE3039Unicode16位的文字编码方案 与ASCII编码兼容 包含世界各个国家文字中主要字符的编码 定义了扩展编码的方案 Java语言的默认字符集从000016到1FFF16间的8192个编码 用于拉丁文、阿拉伯文、希伯来文、古埃及文、古斯拉夫 文、希腊文、非洲文、东南亚等地区文字的编码从200016到2FFF16之间的4096个编码 用于货币符号和各种数学符号的编码从300016到3FFF16之间的4096个编码 用于汉文、日文、韩文拼音字母和标点符号的编码从400016到DFFF16之间的40960个编码 用于统一的汉文、日文、韩文、印度文字符的编码从E000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号