《数据的表示方法讲稿.ppt》由会员分享,可在线阅读,更多相关《数据的表示方法讲稿.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于数据的表示方法第一页,讲稿共三十九页哦1 1 进制进制一、进位计数数制作为进位计数数制具有两个基本要素:基数和权所谓基数:数制中所用到的代码的个数。所谓权:不同数位的固定常数。如下图 二、计算机中使用二进制的原理 1、便于物理器件实现在物理中具有两个稳定状态的物理器件很多:晶体管的“截止”和“导通”,电容的“充电”和“放电”,电压信号的“高”和“低”,脉冲的“有”和“无”,电磁单元的“正向磁化”和“反向磁化”等。2、二进制运算规则简单基数为J的进制,其求和、求积的公式各有J(J+1)/2种。如:2进制:求和:0+0=0,0+1=1+0=1,1+1=10;求积:0*0=0,1*0=0*1=0
2、,1*1=1十进制:基数位10二进制:基数位2第二页,讲稿共三十九页哦 在人类社会活动中都采用的是进位计数制。目前常用的进位计数制有:(1)十进制 (2)60进制(分、秒)(3)12进制(年,时钟)(4)八进制(星期)(5)二进制(鞋、袜、筷子)在计算机里,使用的进位制有四种进制:(1)十进制 D (2)二进制 B (3)八进制 Q (4)十六进制 H2 2 常用进制转换常用进制转换第三页,讲稿共三十九页哦一、二进制数 十进制数1、将十进制数转换成二进制数的方法连续用不大于它的2n的值去减,直至余数为0,被减过的2n,表明第n位为1,否则为0,最右边为第0位。例1:(6894)D=(11010
3、11101110)B例2:把(0.6875)D变成二进制数:(0.6875)D=(0.1101)B例3:(0.9)D转化成二进制练习:把(100.375)D,(35.625)D转化成二进制数2、二进制数转换成十进制数 将对应的二进制数字中各位为1的位的值相加即可例1:(11001)B=124+123+120=(25)D例2:(110.101)2=122+121+12-1+12-3=(6.625)B例3:将n位全是1的二进制数整数,其十进制数值为多少?(2n-1)第四页,讲稿共三十九页哦例4:计算1011.0123和1011.0123将上述两题的运算结果同运算前的被乘数或被除数相比,我们可以得出
4、结论:一个二进制数乘以或除以一个2n,相当于该二进制数的小数点向左或向右移动n位,不够的位补0。二、二进制数 十六进制数 在讲述它们之间的转换之前,我们先介绍一下十六进制的表示符号,我们知道对于十进制数是用0、1、3、4、5、6、7、8、9十个数字表示,对于二进制数是0和1两个数字表示,依次类推,十六进制数就应该用十六个符号表示,对应的十六个符号为:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F第五页,讲稿共三十九页哦1、二进制数向十六进制数转换方法:整数部分从右至左,小数部分从左至右,每四位分成一组,然后每一组用一位十六进制数表示出来即可。例1:(10011100)B转换十六
5、进制数(1001,1100)B=(9C)H例2:(110011010.11011)B转换成16进制数。2、十六进制向二进制转换方法:将每一位十六进制数用四位二进制数表示出来即可例1:(A6)H=(10100110)B例2:(8D)H =(10001100)B (3F8)H =(001111111000)B第六页,讲稿共三十九页哦三、二进制数 八进制数 八进制数就用八个符号表示,对应的八个符号为:0、1、2、3、4、5、6、71、二进制数向八进制数转换方法:整数部分从右至左,小数部分从左至右,每3位分成一组,然后每一组用一位八进制数表示出来即可。例:(1)1110111101.0101001B=
6、()Q (2)110011010.11011B=()Q2、八进制向二进制转换方法:将每一位十六进制数用四位二进制数表示出来即可例:(1)365.47Q=(011110101.100111)B(2)56.345Q=(101110.011100101)B(3)765013Q=(111110101000001011)B 第七页,讲稿共三十九页哦四、十进制数 八进制数、十六进制 1、八进制、十六进制向十进制转换有两种方法:方法一:将八进制或十进制数先转换成对应二进制数,然后,将所得二进制数展开相加。例:56.345Q=101110.011100101D=125+123+122+121+12-2+12-
7、3+12-4+12-7+12-9=32+8+4+2+0.25+0.125+0.0625+0.0078125+0.001953125=46.447265625方法二:直接按数展开相加例:56.345Q=581+680+38-1+48-2+58-3=58+61+30.125+40.015625+50.0009765625=46.447265625第八页,讲稿共三十九页哦2、十进制向八进制或十六进制转换方法一:先将十进制数转换对应二进制数,再将二进制数转换成八进制或十六进制例:将(34)D转换成八进制和十六进制(34)D=(100010)B=(22)H=(42)Q方法二:将十进制数直接除以8或16,
8、除到余数小于8或16,将余数用一位八进制符号或一位十六进制符号表示,并把它写在商的后面即为转换的结果。【数制转换中的小技巧】(1)152.25D=(10011000.01)B=(230.2)Q=(98.4)H 152=128+16+8=27+24+23 0.25=2-2(2)11111111B=(255)D 11111111+1-1=100000000-1=28-1=255(3)7/16D=(0.0111)B 7/16=(22+2+1)/24=(2-2+2-3+2-4)=(0.0111)B第九页,讲稿共三十九页哦3 3 定点数的表示方法定点数的表示方法 在上一节进制转换的例子中,我们看到在现实
9、生活中使用的数值型数据完全可以转换成二进制数据来表示。如:150D=10010110B,-150D=-10010110B 150.4D=10010110.0110011B,-150.4D=-10010110.0110011B 那么这些我们所看到的二进制数就是计算机中能处理的二进制数吗?肯定不是,因为还有几个问题没有解决:(1)数的符号数值化问题。0表示正,1表示负(2)小数点的位置问题。约定:定点数和浮点数(3)表示范围问题。受机器字长限制,超出此范围就称为溢出第十页,讲稿共三十九页哦一、几个基本概念1、机器数:在计算机中表示出来的数。一般采用符号和数值一起编码的方法来表示数据。2、真值:一个
10、机器数所代表的数值称为该机器数的真值。3、定点数:小数点位置固定不变时所表示出来的数。从理论上讲,小数点位置固定在哪一位都可以,但实际上通常将数据表示成纯小数或纯整数。4、浮点数:小数点位置不固定时所表示出来的数。这会带来表示方法不唯一的问题。【注意】一台计算机中数值究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中是采用定点还是采用浮点表示,由用户进行选择。而单片机采用定点表示。一般来说,定点表示的数值范围有限,但要求处理的硬件比较简单;而浮点表示的数据范围很大,但要求处理的硬件比较复杂。第十一页,讲稿共三十九页哦二、定点表示法 所谓定点(fixed p
11、oint)表示法:是指计算机中的小数点位置是固定不变的。根据小数点位置的固定方法不同,可分小数点固定在最低位之后和小数点固定在数的最高位之前两种。(1)设x的形式为x=x0.x1x2xn,(其中x0为符号位,x1 xn 是数值部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:这种小数点固定在数的最高位之前的表示法称为定点小数表示法。它表示的数据范围为:-2-n 1-2-n 即(-0.0001+0.1111)X0X1X2Xn数值部分小数点位置符号位第十二页,讲稿共三十九页哦(2)设x的形式为x=x0 x1x2xn,(其中x0为符号位,x1 xn 是数值部分,也称为尾数,xn 为最低
12、有效位),则在计算机中的表示形式为:这种小数点固定在数的最低位之后的表示法称为定点整数表示法。它表示的数据范围为:1 2-n-1 X0X1X2Xn数值部分小数点位置符号位即(00011111)当计算机采用定点整数表示时,它只能表示整数。但在实际问题中,数不可能总是整数,因此,对非整数进行必要的加工。加工的方法是选择适当的比例因子,使全部参加运算的数都变为整数。例如:二进制数+101.1和-10.11都是非整数,若将它们乘以比例因子22,则得+101.122=+1011010.1122=1011当然,在输出结果时必须除以比例因子。第十三页,讲稿共三十九页哦三、定点数的原码、反码和补码表示原码:真
13、值X的符号数值化后所表示出来的机器数。记为X原反码:正数的反码与正数的原码相同,负数的反码的数值部分是将该负数原码的数值部分各位取反。记为X反补码:正数的补码与正数的原码相同,负数的补码的数值部分是将该负数反码的数值部分加1。记为X补总结:设计算机的字长为N位,X=Xn-2 Xn-3X0 其中,Xi=0或1,则有:(1)真值X=+Xn-2Xn-3X0时X原=X反=X补=0Xn-2Xn-3X0即正数的原码,反码,补码完全相同。(2)真值X=-Xn-2Xn-3X0时。X原=1Xn-2Xn-3X0X反=1Xn-2Xn-3X0X补=1Xn-2Xn-3X0+1=X反+1第十四页,讲稿共三十九页哦例1:已
14、知计算机字号为8位,该机器采用定当整数(小数点在最右边)表示数据,试写出二进制数x=+101010和y=-101010在机器中表示的原码、反码和补码。解:(1)X=+101010 因X为正,则X原=X反=X补=00101010(2)Y=-101010因Y为负数,所以:Y原=10101010,Y反=11010101,Y补=11010110例2:已知X补=101101,求真值X 解:(1)由补码求反码:X反=X补-1=101101-1=101100(2)由反码求原码:X原=X反=110011 X补的符号位为1。显然X原对应的真值为负,所以 X=-10011 注意:负数在机器中一般用补码表示注意:负
15、数在机器中一般用补码表示。第十五页,讲稿共三十九页哦例3:请求出+0和-0的原码、反码和补码(1)小数:+0.0000000原=0.0000000;-0.0000000原=1.0000000+0.0000000反=0.0000000;-0.0000000反=1.1111111+0.0000000补=0.0000000;-0.0000000补=0.0000000(2)整数:+0000000原=0,0000000;-0000000原=1,0000000+0000000反=0,0000000;-0000000反=1,1111111+0000000补=0,0000000;-0000000补=0,000
16、0000【结论】“0”的原码表示:不唯一;“0”反码表示不唯一;0补码表示唯一。求下列各数的原、反、补码(设字长为5位)第十六页,讲稿共三十九页哦由上例可以看出:数的原、反、补码的大小顺序与其真值大小顺序不一致。这就带来一个问题,即数的大小比较很麻烦。四、移码表示(1)定义:定点小数:X移=1+X (-1=X1)定点整数:X移=2n-1+X (-2n-1=X0,符号为1;X=0.5);而小数点后面的数必须为定点小数(即 =n+k+1设n+k位为代码自左至右依次编为第1,2,3,n+k位,而将k位检测位记作Ci(i=2j-1,j=1,k),分别安插在n+k位代码编号的第1,2,4,8,2k-1位
17、上。,第三十三页,讲稿共三十九页哦海明码的组成需增添海明码的组成需增添?位检测位位检测位检测位的位置检测位的位置?检测位的取值检测位的取值?2k n+k+12i (i=0、1、2、3)检测位的取值与该位所在的检测检测位的取值与该位所在的检测“小组小组”中中承担的奇偶校验任务有关承担的奇偶校验任务有关组成海明码的三要素组成海明码的三要素第三十四页,讲稿共三十九页哦例例4.4 求求 0101 按按“偶校验偶校验”配置的海明码配置的海明码解:解:n=4根据根据 2k n+k+1得得 k=3海明码排序如下海明码排序如下:c1=3+5+7 c2=3+6+7 c4=5+6+7二进制序号二进制序号名称名称1
18、 2 3 4 5 6 7C1 C2 C40 0101 的海明码为的海明码为 010010101 0 14.210第三十五页,讲稿共三十九页哦按配偶原则配置按配偶原则配置 0011 的海明码的海明码 二进制序号二进制序号 名称名称1 2 3 4 5 6 7C1 C2 C41 0 000 1 1解:解:n=4 根据根据 2k n+k+1取取 k=3C1=3 5 7=1C2=3 6 7=0C4=5 6 7=0 0011 的海明码为的海明码为 1000011练习练习14.2第三十六页,讲稿共三十九页哦3.海明码的纠错过程海明码的纠错过程形成新的检测位形成新的检测位 Pi如增添如增添 3 位位(k=3)
19、新的检测位为新的检测位为 P4 P2 P1以以 k=3 为例,为例,Pi 的取值为的取值为P1=1 3 5 7P2=2 3 6 7P4=4 5 6 7对于按对于按“偶校验偶校验”配置的海明码配置的海明码 不出错时不出错时 P1=0,P2=0,P4=0C1C2C4其位数与增添的检测位有关其位数与增添的检测位有关4.2第三十七页,讲稿共三十九页哦P1=1 3 5 7=0无错无错P2=2 3 6 7=1有错有错P4=4 5 6 7=1有错有错P4P2P1=110第第 6 位出错,可纠正为位出错,可纠正为 0100101,故要求传送的信息为故要求传送的信息为 0101。纠错过程如下纠错过程如下例例4.5解:解:已知接收到的海明码为已知接收到的海明码为 0100111(按配偶原则配置)试问要求传送的信息是什么(按配偶原则配置)试问要求传送的信息是什么?4.2 第三十八页,讲稿共三十九页哦感感谢谢大大家家观观看看第三十九页,讲稿共三十九页哦
限制150内