《数据的表示(数据结构).ppt》由会员分享,可在线阅读,更多相关《数据的表示(数据结构).ppt(43页珍藏版)》请在优知文库上搜索。
1、第二章 数据的表示2.1数据、信息和媒体2.2数字化信息编码2.3数值数据的编码表示2.4非数值数据的编码表示2.5二进制信息的计量单位2.6数据校验码2.3.3变形补码 为了判断运算结果是否溢出,计算机中采用双符号位的补码表示方式,称为变形补码。因为这种补码小数的模数是4,因此也称为模4补码。 负数的变形补码的定义 定点负整数:x变补=2n+1-|x| 定点负小数:x变补=4-|x|例2.27求x=-1011的6位和8位变形补码 x变补=26-1011 =1000000-1011 =110101 x变补=28-001011 =100 000000-001011 =11110101例2.28求
2、x=-0.1011的8位变形补码 x变补=4-0.101100 =100.000000-0.101100 =11.010100 变形补码的表示即用00表示正号,11表示负号,数值部分采用补码表示即可。2.3.3反码表示法 负数的补码表示中,对各位求反而末尾不加1,就可得到负数的反码表示。 反码的定义: 定点负整数:x反=(2n-1)-|x| 定点负小数:x反=(2-2-(n-1)-|x| 反码0的表示有2种 +0反=000 -0反=1112.3.3三种编码系统比较 对于正数,原码,补码,反码都是相同的。 原码和反码的0都有2种表示,补码可表示唯一0。 原码和反码表示的正数和负数的范围相对0来说
3、是对称的。补码表示的负数比正数能多表示一个最小负数。例2.29编码系统的表示范围8位机中,原码的表示范围是 0 00000000 1111111(即+0+127) 1 00000001 1111111(即-0-127)8位机中,反码的表示范围是 0 00000000 1111111(即+0+127) 1 00000001 1111111(即-127-0)8位机中,补码的表示范围是 0 00000000 1111111(即+0+127) 1 00000001 1111111(即-128-1)2.3.3编码系统运算-机器数求真值 已知机器数求真值 已知原码求真值:符号位为0为正号,为1 为负号,数
4、值部分不变 已知补码求真值:符号位为0为正号,为1 为负号,数值部分变反+1 已知反码求真值:符号位为0为正号,为1 为负号,数值部分变反例2.30已知机器数求真值8位原码机中数据为11100111,求真值。 已知原码求真值: 11100111- -1100111B=-103D8位补码机中数据为11100111,求真值。 已知补码求真值: 1 1100111- -(0011000+1)= -0011001B=-25D例2.31已知X补=1011010,求X(演示2-16.swf)2.3.3编码系统运算-补码移位运算 补码左移,高位移出,末位补0,移出的位不同于符号位时,发生溢出。补码右移,高位
5、补符号,低位移出。 补码左移n位,实现带符号数乘以2n运算。补码右移n位,实现带符号数除以2n运算例2.32已知x补=1.1010110,求x/2补 (演示2-17.swf) x/2补=1.1101011例2.33已知x补=1.1010110,求2x补(演示2-18.swf)2x补=1.0101100,判断溢出:移出位为1,符号位为1,不溢出例2.34已知x补=1.1010110,求 4x补(演示2-19.swf) 4X补=0. 1011000 判断溢出:移出位为1。符号位为0,不同溢出2.3.3编码系统运算-补码取负运算 补码取负后的补码表示方法:对已知补码各位取反,末尾加1即可(包括符号位
6、) 。注意最小负数取负后会发生溢出,因为补码表示的负数比正数多1个例2.35已知x补=1011010,求-x补(演示2-20.swf) -x补=01001102.3.3编码系统运算-填充处理 计算机内部,有时需要将短数扩展为一个长数,此时需要进行填充处理。对于定点小数,填充处理在低位进行,而对于定点整数,则在符号位后的数值高位进行。 补码定点小数填充在末尾补0,定点整数符号位不变,在符号位后用数符补足所有位数 例2.36 求X补=111010在8位机和16位机中的补码表示形式 X补=111010是机器数,可知6位机中,1位符号位,5位数值位。已知X补可求真值,再由真值求得8位机和16位机中的补
7、码表示形式 采用扩展填充的方法,对x补用符号位填充空余部分即可例2.37 求X补=111010在8位机和16位机中的补码表示形式(演示2-21.swf)8位补码:1111101016位补码:11111111 111110102.3.4无符号数的表示 一个编码的所有二进位都用来表示数值,该编码表示的就是无符号数。全部是正数运算且不出现负值结果的场合下,可以省略符号位,使用无符号数表示。 字长一定的情况下,它的表示范围大于有符号数。2.3.5浮点数的编码表示 定点数表示范围很有限。 浮点数形式不仅可以表示整数和纯小数,而且可以表示一般的实数,表数范围比定点数大得多。 不管定点还是浮点表示,n位编码
8、只能表示2n个数,所以浮点数表示虽然扩大了表数范围,但并没有增加可表示的数值的个数,只是数据间的间隔变稀疏了。2.3.5浮点数编码表示浮点数表示一个数值数据时,实际是用2个定点数表示,一个定点小数用来表示浮点数的尾数,一个定点整数用来表示浮点数的阶。尾数部分可以采用原码补码表示,阶可以采用原码、补码、移码表示。浮点数表示必须确定数的符号(数符)、尾数、阶的符号(阶符)、阶码。基数和小数点的位置都是默认的。每种计算机的浮点数的表示格式各不相同。例2.38浮点数表示x=-101.010101 浮点机中,字长8位,浮点数的格式规定为:数符1位,尾数3位,阶符1位,阶码3位。尾数和阶码都采用补码表示。
9、 表示为定点小数的尾数和定点整数的阶码 X=-101.010101=-0.10101010123其中数符为-,尾数为0.101010101,阶符为+,阶码为3。尾数取3位,其他舍去。例2.39浮点数表示x=-101.010101(演示2-22.swf) X表示为100110112.3.5浮点数移码表示一般浮点数的阶码都是用移码表示。对每个阶都加上一个正的常数(偏置常数),使所有的阶都转化为正整数,就是阶的移码表示。设E为阶,所取移码位数为n,则 E移=2n-1+E (2n-1 为偏置常数)移码0的表示是唯一的。若将移码第一位看成是符号位,则移码和补码仅符号位不同。所以移码可以通过补码符号位变反
10、求得。例2.40浮点数表示x=-101.010101 浮点机中,字长8位,浮点数的格式规定为:数符1位,尾数3位,阶符1位,阶码3位。尾数采用原码表示。阶码采用移码表示。 阶码+3的补码是0 011,则移码是1 011,只需符号位变反即可。若采用公式计算,则阶码是4位(含符号位),偏置常数是24-1=8,+3+8=+11=1011。数符阶符阶码尾数例2.41浮点数表示x=-101.010101(演示2-23.swf)X表示为110111012.3.5浮点数的规格化浮点数尾数的位数表示数的有效数位,有效数位越多,数据的精度越高。为了尽可能地保留有效数字的位数,必须进行规格化操作。规格化数的标志是
11、真值(原码)的尾数部分中最高位为非零数字。若尾数采用补码表示,则规格化数的标志是:尾数的符号位和数值部分最高位不同2.3.5浮点数的规格化 规格化操作有“左规”和“右规”2种。若采用变形补码表示尾数,当结果的尾数出现11.1xxx或00.0 xxx的形式时,需将尾数左移,阶减1,直到尾数出现规格化形式,称为左规。浮点结果出现01.xxx或者10.xxx时,应先右移,阶码加1,然后判断阶码是否溢出,称为右规。例2.42 x=-110.111的浮点数表示规格化 浮点机中,字长8位,浮点数的格式规定为:数符1位,尾数3位,阶符1位,阶码3位。尾数和阶码采用补码表示。 已知数据在机器中的表示形式为10
12、100101, 判断是否规格化,若不是规格化形式,请做规格化操作。例2.43 x=-110.111的浮点数表示规格化(演示2-24.swf)例2.4465798转换为IBM370短浮点数格式 IBM短浮点数格式为 0位:数符 1-7位:7位移码表示的阶码 8-31位:6位16进制原码小数表示的尾数(尾数基数为16) 解题思路:16进制尾数指明了基数为16,先将数据表示为16进制的科学计数法,再分别表示尾数、阶码,按格式填入例2.4465798转换为IBM370短浮点数格式(演示2-25.swf)例2.45 补码表示的规格化浮点数的表示范围 规格化浮点数的n位尾数部分表示范围: 正数部分:+0.
13、100(2-1)+0.111(1-2-n) 负数部分:-0.101(-(2-1+2-n)-1.000(-1) 规格化浮点数的m位阶码部分表示范围: 正数部分:+000(+0)+111(+(2m-1) 负数部分:-1000(-2m)-001(-1)例2.46 补码表示的规格化浮点数的表示范围(演示2-26.swf) 最大正数为+0.1112111 最小正数为+0.101 2-1000 最大负数为-0.101 2-1000 最小负数为-1.000 21112.3.6十进制数的二进制编码 十进制数用二进制编码的形式被称为BCD码。每位十进制数的数位用4位二进制位来表示。4位二进制位组合有16种,选择
14、10种的状态表示十进制09,产生多种BCD码。 BCD码有十进制有权码和十进制无权码。4位有权码十进制数8421码2421码5211码84-2-1码 4311码0000000000000000000001000100010001011100012001000100011011000113001100110101010101004010001000111010010005010110111000101101116011011001010101010117011111011100100111008100011101110100011109100111111111111111114位无权码十进制数余
15、3码格雷码(1)格雷码(2)00011000000001010000010100201010011011030110001000104011101101010510001110101161001101000117101010000001810111100100191100010010002.4非数值数据的编码表示 逻辑数据:逻辑数据按位排列和运算 西文字符:字符集中每个字符都有一个代码(二进制编码的01序列)。这些代码具有唯一性,构成字符集的代码表,简称码表。目前使用最广泛的西文字符集及其编码是ASCII码,即美国标准信息交换码。2.4非数值数据的编码表示 汉字字符:汉字的总数超过6万字,数量
16、巨大。汉字系统要处理汉字输入码、内码、字模点阵码 汉字输入码:每个汉字用西文键盘上的一个或多个按键进行编码表示称为输入码,又称外码。主要有数字、语音、字形编码。 字符集与汉字内码:GB2312国标字符集包括6763个常用汉字,每个汉字规定一个唯一标准代码,又称国标码,国标交换码。2.4非数值数据的编码表示 国标码表分94行94列,行号为区号,列号为位号。14位区位代码叫区位码。 国标码是在区位码的区号和位号各自加上32后的二进制代码。 为了国标码和ASCII码不会混淆,一般将国标码的每个字节的最高位设为1,得到机内码。汉字字模点阵码和轮廓描述:每一汉字的字形预先存放在机器内,所有字符的形状描述信息集合在一起,就是字形信息库,简称字库。字形有字模点阵描述和轮廓描述2种方法。2.4.4多媒体信息 图的编码: 图像方式、图形方式 声音的编码:将连续的声波波形转换为二进制形式编码 视频信息编码:视频信号数字化,包括视频的画面色彩、亮度等等2.5二进制信息的计量单位 二进制数据的一位0或1 是组成二进制信息的最小单位,称为一个比特,或称位(bit)。 一个字节(Byte)等于8个比特。 计算机中