2019年10月21日星期一南理工紫金学院1第2章计算机中数据信息的表示进位计数制与数制转换带符号数的表示数的定点表示与浮点表示非数值型数据的表示十进制数串的表示数据校验码2019年10月21日星期一南理工紫金学院2数据信息数值型数据非数值型数据定点数浮点数逻辑数字符与字符串汉字信息声音、图像、动画等十进制数串2019年10月21日星期一南理工紫金学院32.1进位计数制与数制转换1.进位计数制的两个因素——基值和位权值任何R进制数N均可表示为1n-iii-mxRm)(mnnRxxxxxx(N)11021.mm)(m)(mnnnnRxRxRxRxRxRx11110022111RixRRR:基值。表示系数可以取0,1,…,共个数字并且是逢进一的。iiRxiRix:位权值。表示在数列中的实际数值。按权展开多项式和公式2019年10月21日星期一南理工紫金学院42.计算机中常用进位计数制二进制(R=2)数字:0,1进位方式:逢2进1,高位借1当2后缀:B如10100011B或(10100011)2八进制(R=8)数字:0,1,2,3,4,5,6,7进位方式:逢8进1,高位借1当8后缀:O或Q如137.67Q或(137.67)82019年10月21日星期一南理工紫金学院5十进制(R=10)数字:0,1,2,3,4,5,6,7,8,9进位方式:逢10进1,高位借1当10后缀:D或无如1359.26D或1359.26或(1359.26)10十六进制(R=16)数字:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F进位方式:逢16进1,高位借1当16后缀:H如19BF.36EH或(19BF.36E)162019年10月21日星期一南理工紫金学院6数制转换时整数部分、小数部分分别进行转换。1.任意R进制数转换为十进制数方法:按权相加。例:将二进制数11011.101转换为十进制数。(11011.101)2=24+23+21+20+2-1+2-3=16+8+2+1+0.5+0.125=(27.625)103.数制转换2019年10月21日星期一南理工紫金学院7例:将八进制数263.56转换为十进制数。(263.56)8=2×82+6×81+3×80+5×8-1+6×8-2=128+48+3+0.625+0.09375=179.71875例:将十六进制数B3.B8转换为十进制数。(B3.B8)16=11×161+3×160+11×16-1+8×16-2=176+3+0.6875+0.03125=179.718752019年10月21日星期一南理工紫金学院82.十进制数转换为任意R进制数方法:整数部分和小数部分分别处理。整数部分:除基取余①把被转换的十进制整数除以基数R,取其余数即为R进制整数的最低位的数字。②再用基数R去除前次所得的商,所得余数即为R进制整数相应位的数字。③重复②,直到商为0为止。2019年10月21日星期一南理工紫金学院9小数部分:乘基取整①把被转换的十进制小数乘以基数R,取乘积的整数部分作为R进制小数的最高位的数字。②再用基数R乘前一步乘积的小数部分,取新的乘积的整数部分为R进制小数相应位的数字。③重复②,直到乘积的小数部分为0或求得所要求的位数为止。例:将(116.842)10转换为二进制数(截断法,保留6位小数)2019年10月21日星期一南理工紫金学院10整数部分:余数211605822902141270231211201低整数部分(116)10=(1110100)22019年10月21日星期一南理工紫金学院11小数部分:乘积0.842×2.68410×2.36810×2.73600×2.47210×2.94400×2.88810高小数部分:(0.842)10=(0.110101)2(116.842)10=(1110100.110101)22019年10月21日星期一南理工紫金学院12例:将(233.8125)10转换为十六进制数。整数部分16233……91614……E0小数部分0.8125×164.8750+8.125D.0000(233.8125)10=(E9.D)162019年10月21日星期一南理工紫金学院13二进制数与八进制数之间的转换方法:二进制数→八进制数整数部分:从最低有效位开始,每三位二进制数对应一位八进制数,不足三位高位补“0”。小数部分:从最高有效位开始,每三位二进制数对应一位八进制数,不足三位,低位补“0”。八进制数→二进制数将被转换的八进制数的每一位用三位二进制表示。3.二、八、十六进制数之间的转换2019年10月21日星期一南理工紫金学院14二进制与十六进制数间的转换方法:二进制数→十六进制数整数部分:从最低有效位开始,每四位二进制数对应一位十六进制数,不足四位高位补“0”。小数部分:从最高有效位开始,每四位二进制数对应一位十六进制数,不足四位,低位补“0”。十六进制数→二进制数将被转换的十六进制数的每一位用四位二进制表示。2019年10月21日星期一南理工紫金学院15例:将(1011100.10111)2转换为八进制和十六进制数。转为八进制数:1011100.10111转为十六进制数:1011100.1011143001506.(1011100.10111)2=(134.56)8C05B0008(1011100.10111)2=(5C.B8)16.例:(76.12)8=()2例:(8E.4A)16=()2111110.00101010001110.010010102019年10月21日星期一南理工紫金学院16例:将(36.25)8转换为十六进制数。①先转为二进制数:(36.25)8=(011110.010101)23625②再转为十六进制:(00011110.01010100)2=(1E.54)161E54八进制与十六进制数间的转换方法:八进制二进制十六进制2019年10月21日星期一南理工紫金学院17习题2.1(1)(246.625)D=(11110110.101)B=(366.5)Q=(F6.A)H(2)(AB.D)H=(10101011.1101)B=(253.64)Q=(171.8125)D习题2.24位十进制:4*log210=4*3.3=13.2≈14位二进制5位十进制:5*3.3=16.5≈17位二进制8位十进制:8*3.3=26.4≈27位二进制习题2.3K2K1=00时,K是4的倍数。2019年10月21日星期一南理工紫金学院182.2带符号数的表示一、机器数与真值真值:用±|A|表示的实际数值。机器数:计算机中的数据。(1)机器数的特点:符号和数值均二进制代码化。小数点隐含在某一固定位置上,不占存储空间。位数受机器字长的限制。超过机器字长的数值位要舍去。2019年10月21日星期一南理工紫金学院19(2)机器数可分为:无符号数:机器字长的所有二进制位均表示数值带符号数:第1个二进制位为符号位,其余为数值部分例:8位机器数为:11011011•若为无符号整数,其真值为219•若为带符号整数,且采用原码表示,则最高位为符号,11011011表示二进制整数-1011011,其真值为-912019年10月21日星期一南理工紫金学院20二、原码表示1.原码的定义纯小数:设x=±0.x1x2…xn,则纯整数:设x=±x1x2…xn,则[x]原=x1-x=1+|x|0≤x1-1x≤0[x]原=x,x0=02n-x=2n+|x|0≤x2n-2nx≤0[x]原=x0.x1x2…xn,共n+1位,[x]原=x0x1x2…xn,共n+1位,其中,x0为符号位。其中,x0为符号位。2019年10月21日星期一南理工紫金学院21例:当x=+0.1101时,[x]原=_____,在机器中表示为_____当x=-0.1101时,[x]原=_____当x=+1110时,[x]原=_____,在机器中表示为_____当x=-1110时,[x]原=_____符号取反数值位不变0+,1-数值位不变0.1101011011.1101011101111001110结论:1)当x为‘+’时,x0=0,当x为‘-’时,x0=1。2)[x]原真值x3)[x]原[-x]原原码的简便求法2019年10月21日星期一南理工紫金学院222.原码中0的表示原码中“0”有两种表示纯小数:[+0]原=[-0]原=纯整数:[+0]原=[-0]原=0.00…01.00…000…010…02019年10月21日星期一南理工紫金学院233.原码的表示范围对于纯小数,n+1位原码的数据表示范围:-0.111…11~+0.111…11n位n位即-(1-2-n)~(1-2-n),分辨率为2-n,共可表示2n+1-1个数对于纯整数,n+1位原码的数据表示范围:-111…11~+111…11n位n位即-(2n-1)~(2n-1),分辨率为1,共可表示2n+1-1个数2019年10月21日星期一南理工紫金学院244.原码的移位规则符号位不变,数值部分左移或右移,移出的空位填0。[x]原左移1位,得到[2x]原;[x]原右移1位,得到[x]原。例:已知[x]原=0.0110000,则[x]原=,[2x]原=例:已知[x]原=1110,则[x]原=,[x]原=,[2x]原=原码左移时若将有效位移出(x1=1),则出错。21212141出错0.00110000.11000001011100111002019年10月21日星期一南理工紫金学院255.原码的优缺点优点:1)简单;2)与真值的转换容易。缺点:1)0有两种表示,给使用带来不便;2)原码表示的加减运算复杂。2019年10月21日星期一南理工紫金学院26三、补码表示1.补码概念的引入模:是指一个计量系统的量程。如时钟的模为12,记作mod12。在计算机中,超过字长的被丢失的量就是模。例如,一个m位的寄存器,若存放的是纯小数,则模为2,若存放的是纯整数,则模为2m。补数:[x]补=M+x(modM)1)当x≥0时,[x]补=x。2)当x<0时,[x]补=M+x=M-|x|。对于某一确定的模,减去一个数可用加上那个数的负数的补数来代替。2019年10月21日星期一南理工紫金学院272.补码的定义纯小数:设x=±0.x1x2…xn,[x]补=x0.x1’x2’…xn’,共n+1位,其中x0为符号位。纯整数:设x=±x1x2…xn,[x]补=x0x1’x2’…xn’,共n+1位,其中x0为符号位。[x]补=x2+x0≤x1-1≤x0(mod2)[x]补=x,x0=02n+1+x0≤x2n-2n≤x0(mod2n+1)2019年10月21日星期一南理工紫金学院28例:当x=+0.1011,[x]补=当x=-0.1011,[x]补=当x=+1011,[x]补=当x=-1011,[x]补=0.10112+x=10.0000-0.1011=1.01010101125+x=100000-1011=10101结论:当x为‘+’时,x0=0,当x为‘-’时,x0=1。2019年10月21日星期一南理工紫金学院293.补码的简便求法:(1)若x≥0,则[x]补=x,且置x0为0;若x<0,则置x0为1,将x的数值位按位取反,末位加1,即得到[x]补。(2)若x≥0,则[x]补=x,且置x0为0;若x<0,则置x0为1,再从x的最低位向高位扫描,找到第一个1后,保持该1和比其低位的各位不变,其余数值位按位取反,即得到[x]补。取反加1法扫描法2019年10月21日星期一南理工紫金学院304.特殊数的补码表示真值0的补码表示纯小数:纯整数:-1和-2n的补码表示纯小数的-1:[-1]补=1.00…0(mod2)纯整数的-2n:[-2n]补=100…0(mod2n+1)[+0]补=[-0]补=0.00…0[+0]补=[-0]补=0