您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第2章计算机内部数据的表示方法
第1页第2章计算机内部数据的表示方法2.1数值数据的编码2.2非数值数据的编码计算机内部数据分为“数值数据”和“非数值数据”两大类。“数值数据”是指在数轴上能找到其对应点的数据,包括整数和实数。“非数值数据”包括文字、声音、图像、视频等。第2页2.1数值数据的编码2.1.1数制及其相互转换2.1.2定点表示与浮点表示2.1.3无符号定点整数的表示2.1.4有符号定点整数的表示通常将数值数据在计算机内部的编码称为机器数,而机器数表示的十进制数值称为机器数的真值。对数值数据的编码需要解决三个问题:数制转换、小数点的处理和符号的表示。第3页2.1.1数制及其相互转换1、进位计数制2、数制间的转换第4页1、进位计数制(1)R进制数的表示方法:anan-1...a1a0.a-1a-2...a-m(m,n为正整数)式中:ai(i=0~n,-1~-m)为基本符号。(2)R进制数的值:V=an×Rn+an-1×Rn-1+...+a1×R1+a0×R0+a-1×R-1+a-2×R-2+...+a-m×R-m(3)基数R:二进制R=2,八进制R=8,十六进制R=16,十进制R=10。第5页1、进位计数制(4)、基本符号:二进制基本符号为0和1八进制基本符号为0,1,2,3,4,5,6,7十六进制基本符号为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十进制基本符号为0,1,2,3,4,5,6,7,8,9第6页1、进位计数制(5)、权:Ri称为第i位上的权。(6)、运算规则:“逢R进一”。(7)、后缀字母:二进制:B,八进制:Q(O),十进制D(可以省略),十六进制:H。第7页表2.1四种进位制数之间的对应关系二进制数八进制数十进制数十六进制数000000010010001101000101011001111000100110101011110011011110111101234567101112131415161701234567891011121314150123456789ABCDEF第8页2、数制间的转换(1)R进制数转换成十进制数(2)十进制数转换成R进制数(3)二、八、十六进制数的相互转换第9页(1)、R进制数转换成十进制数:“按权展开”法例1、将二制数10101.01转换成十进制数。(10101.01)2=(1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2)10=(21.25)10例2、将八进制数307.6转换成十进制数。(307.6)8=(3×82+7×80+6×8-1)10=(199.75)10例3、将十六进制数3A.C转换成十进制数。(3A.C)16=(3×161+10×160+12×16-1)10=(58.75)10第10页(2)、十进制数转换成R进制数“除基取余,上右下左(先低后高)”法。1048835113888低位余数高位15030所以,(835)10=(1503)8例1、将十进制整数835分别转换成八、二进制数。1)、整数部分的转换:第11页所以,(835)10=(1101000011)2417262835104208521322222低位余数高位001100361022220111第12页(2)、十进制数转换成R进制数2)、小数部分的转换:“乘基取整,上左下右(先高后低)”法。例2、将十进制小数0.6875分别转换成二、八进制数。0.6875×2=1.375整数部分=1(高位)0.375×2=0.75整数部分=0↓0.75×2=1.5整数部分=1↓0.5×2=1.0整数部分=1(低位)所以,(0.6875)10=(0.1011)20.6875×8=5.5整数部分=5(高位)↓0.5×8=4.0整数部分=4↓所以,(0.6875)10=(0.54)8(低位)第13页(2)、十进制数转换成R进制数例3、将十进制小数0.63转换成二进制数。0.63×2=1.26整数部分=1(高位)0.26×2=0.52整数部分=0↓0.52×2=1.04整数部分=1↓0.04×2=0.08整数部分=0(低位)所以,(0.63)10=(0.1010)2(近似值)第14页(2)、十进制数转换成R进制数3)、含整数、小数部分的数的转换:分别转换,然后再组合。例4、将十进制数835.6875转换成二、八进制数。(835.6875)10=(1101000011.1011)2=(1503.54)8第15页(3)、二、八、十六进制数的相互转换1)、八进制数转换成二进制数:每一个八进制数字改写成等值的三位二进制数即可。(0)8=000(1)8=001(2)8=010(3)8=011(4)8=100(5)8=101(6)8=110(7)8=111例1、将(13.724)8转换成二进制数。(13.724)8=(001011.111010100)2=(1011.1110101)2第16页(3)、二、八、十六进制数的相互转换2)、十六进制数转换成二进制数:把每一个十六进制数字改写成等值的四位二进制数即可。(0)16=0000(1)16=0001(2)16=0010(3)16=0011(4)16=0100(5)16=0101(6)16=0110(7)16=0111(8)16=1000(9)16=1001(A)16=1010(B)16=1011(C)16=1100(D)16=1101(E)16=1110(F)16=1111例2、将十六进制数2B.5E转换成二进制数。(2B.5E)16=(00101011.01011110)2=(101011.0101111)2第17页(3)、二、八、十六进制数的相互转换3)、二进制数转换成八进制数:整数部分从低位向高位方向每三位用一个等值的八进制数来替换,最后不足三位时在高位补0凑满三位;小数部分从高位向低位方向每三位用一个等值的八进制数来替换,最后不足三位时在低位补0凑满三位。(0.10101)2=(000.101010)2=(0.52)8(10011.01)2=(010011.010)2=(23.2)8第18页(3)、二、八、十六进制数的相互转换4)、二进制数转换成十六进制数:整数部分从低位向高位方向每四位用一个等值的十六进制数来替换,最后不足四位时在高位补0凑满四位;小数部分从高位向低位方向每四位用一个等值的十六进制数来替换,最后不足四位时在低位补0凑满四位。(11001.11)2=(00011001.1100)2=(19.C)16第19页2.1.2定点表示与浮点表示1、定点表示2、浮点表示第20页1、定点表示定点表示法用来表示整数和纯小数。定点小数:1)、小数点固定(隐含)在数的最左边,0.xx…x(不考虑符号)。2)、n位定点小数X的表示范围:2-n≤|X|≤1-2-n(不考虑符号)。定点整数:1)、小数点固定(隐含)在数的最右边,xx…x(不考虑符号)。2)n定点整数X的表示范围:0≤|X|≤2n-1(不考虑符号)。忽略和溢出:如果运算的结果小于能表示的最小数,则计算机把它当成0处理;若是大于能表示的最大数,则会发生“溢出”。第21页2、浮点表示浮点表示法用来表示实数。表示形式:X=(-1)s×M×RE其中:基数R:2、4、16等符号S:0(正)或1(负);尾数M:二进制定点小数(不含符号),决定数的精度;阶码E:二进制定点整数(含符号),决定数的范围。绝对值最小的数(不包括0):0.0...01×R-11...1。绝对值最大的数:0.11...1×R11...1。第22页2.1.3无符号定点整数的表示当一个编码的所有位都用来表示数值时,该编码表示的就是无符号数。一般在全部是正数运算,且不出现负值结果的场合下,可以省略符号位,使用无符号数表示。存放在一个n位寄存器中的无符号定点整数的表示范围为:0~2n-1第23页2.1.4有符号定点整数的表示1、原码2、补码3、反码4、小结第24页1、原码编码规则:(1)最高位为符号位,对于正数,符号位为0,对于负数,符号位为1;(2)其余各位为数值位,其数值位与真值的数值位相同。特点:(1)0有两个编码,假设采用八位原码,则:[+0]原=00000000,[-0]原=10000000(2)n位二进制原码表示的数值范围为2n-1–1~–2n-1+1。第25页1、原码举例:【例2.12】确定101011B和-101011B的8位原码。[101011]原=00101011,[-101011]原=10101011【例2.13】已知8位原码00111011和10010110,确定其对应的真值。[00111011]原对应的真值为111011B。[10010110]原对应的真值为-10110B。第26页2、反码编码规则:(1)最高位为符号位,对于正数,符号位为0,对于负数,符号位为1;(2)其余各位为数值位,对于正数,其数值位与真值的数值位相同;对于负数,其数值位是通过真值的数值位各位取反得到。特点:(1)0有两个编码,假设采用八位反码,则:[+0]反=00000000,[-0]反=11111111(2)n位二进制反码表示的数值范围为2n-1–1~–2n-1+1。第27页2、反码举例:【例2.14】确定101011B和-101011B的8位反码。[101011]反=00101011,[-101011]反=11010100【例2.15】已知8位反码00111011和10010110,确定其对应的真值。[00111011]反对应的真值为111011B。[10010110]反对应的真值为-1101001B。第28页3、补码编码规则:(1)最高位为符号位,对于正数,符号位为0,对于负数,符号位为1;(2)其余各位为数值位,对于正数,其数值位与真值的数值位相同;对于负数,其数值位是真值的数值位各位取反后加1得到。特点:(1)0只有一个编码,假设采用八位补码,则:[0]补=00000000(2)n位二进制补码表示的数值范围为2n-1–1~–2n-1。第29页3、补码举例:【例2.16】确定101011B和-101011B的8位补码。[101011]补=00101011,[-101011]补=11010101【例2.17】已知8位补码00111011和10010110,确定其对应的真值。[00111011]补对应的真值为111011B。[10010110]补对应的真值为-1101010B。注:当由负数的补码确定其真值时,真值的数值位是由补码数值位各位取反后加1得到。第30页4、小结1、三种编码都是为了解决负数在机器中的表示而提出的。对于正数,它们的符号都是0,其数值部分都是真值的数值部分本身;而对于负数,符号位均为“1”,数值位则各有不同的表示:原码:同真值的数值位。反码:真值的数值位各位取反。补码:真值的数值位各位取反,末位加1。由编码求真值,是一个完全相反的过程,先确定数值位,然后将符号位转换成符号即可。第31页4、小结2、原码和反码都有+0和-0两种零的表示,而补码可唯一表示零。3、补码和反码的符号位可作为数值的一部分看待,可以和数值位一起参加运算。而原码的符号位必须和代表绝对值的数值位分开处理。4、原码和反码能表示的正数和负数的范围相对零来说是对称的。假定机器数为n位,原码和反码的数的表示范围都是2n-1–1~–2n-1+1补码的表示范围不对称,负数表示的范围较正数宽,能多表示一个最小负数:-2n-1。第32页2.2非数值数据的编码2.2.1数字的编码2.2.2西文字符的编码2.2.3汉字的编码第33页2.2.1数字的编码十进制数8421码2421码5211码84-2-1码4311码8421码,也称自然(Nature)BCD码,常记为NBCD码。000000000000000000000100010001000101110001200100010001101100011300110011010101010100401000100011101001000501011011100010110111601101100
本文标题:第2章计算机内部数据的表示方法
链接地址:https://www.777doc.com/doc-1656876 .html