第3章计算机数据与编码
第3章 计算机数据与编码
计算机中的数据包括数值数据、文字、图形、声音、视频等各种信息,本章中介绍了数据和数制,数制间的转换,以及各种数据在计算机内的表示。
数据及数制
数制间的转换
数编码
字符编码
BCD码
汉字编码
逻辑运算
3.1计算机数据及数制
3.1.1计算机的数据
一切可以被电子数字计算机接受并处理的符号,我们通称为”计算机数据”,简称为”数据”,包括:数值数据、文字、图形、声音、视频等各种信息。
人类在生产、生活、交往、科研中使用的”信息”,一般表现为”数据”。因此,许多数据就代表某种事物的信息。但是,数据不等于信息,有些数据只是反映了某些信息的某些含义,在这种情况下,数据是数据,信息是信息。
3.1.2计算机的数制
数制是数的表示及计算方法。数值数据依进位制的不同而有各种不同的表示形式。
计算机是由千千万万个电子元件如电容、电感、二极管、三极管等组成,这些电子元件一般只有两种稳定的工作状态,如电流的导通与截止、电位的高与低等,用”1”与”0”易于实现。因此,计算机硬件电路采用二进制数制。并且与布尔代数运算规则相一致,能运用布尔代数运算规则设计计算机逻辑电路。因此计算机中的所有信息,都以二进制形式表示。因为:
二进制数在技术上容易实现(只有0、1两种数据符号);
二进制数的运算规则最为简单(使用布尔代数运算规则);
逻辑性强(0、1与逻辑代数中的”假”、”真”相吻合);
与十进制数转换容易。
但人们习惯使用的是十进制。因此屏幕软拷贝和打印硬拷贝数据常以十进制来表示。
设计计算机程序数据时,为了简化程序篇幅,便于识别和交流,程序员又大都使用八进制和十六进制形式,于是,人们在编程、操作和运用计算机处理结果时,就要同时使用四种数制。
3.2 数制间的转换
3.2.1数制的表示
人们在编程、操作和运用计算机处理结果时,就要同时使用二进制、八进制、十进制、十六进制四种数制。这四种数制使用的数码分别为:
二进制使用2个数码:0,1 ;
八进制使用8个数码:0,1,2,3,4,5,6,7;
十进制使用个数码:0,1,2,3,4,5,6,7,8,9 ;
十六进制使用16个数码:0,1,2,3,4,5,6,7,8,
它们进位规则分别为:
二进制是逢二进一;八进制是逢八进一;十进制是逢十进一;十六进制是逢十六进一。
由于不同数位上的权值各不相同,因此同一个数码在不同的数位上,其表示的数值就不相同。例如:
十进制数666.6,百位上的 6表示6×102 = 600 ,
十位上的 6表示6×101 = 60 ,
个位上的 6表示6×100 = 6 ,
小数点后的6表示6×10-1 = 0.6 。
可见,每个数位上的值等于该位置上的数码与位置权值的乘积,相邻数位中高位权与低位权之比即是该进制的基数(也称为”底数”)。每种进制的基数即为该进制本身。于是,任何一个数N可用下面按权展开的多项式表示:
N=an-1 Rn-1 + an-2 Rn-2 +…+a1 R1+a0 R0 +…+a-m R-m =i
式中,R表示进位制的基数,ai?是0,1,…,(R-1)这R个数字中的任一个数,Ri表示数位的权,m、n为正整数。
按照上述公式展开计算,就可以将任意进制数转换为十进制数。
3.2.2数制间的相互转换
表列出了常用的十进制数、二进制数、八进制及十六进制数之间的关系。(1) 二进制、八进制和十六进制数转换为十进制数
转换方法:按权位展开,相加得其和。
【例4.1】将二进制数10011转化成十进制数。
(10011)2=1×24+0×23+0×22+1×21+1×20=16+0+0+2+1=(19)10
【例4.2】将八进制数116转换成十进制数
(116)8=1×82+1×81+6×80=64+8+6=(78)10
【例4.3】将十六进制数37E转换成十进数.
(37E)16=3×162+7×161+14×160=768+112+14=(894)10
(2) 十进制数转换成二进制数、八进制或十六进制数
转换方法:整数 除以2(8,16)倒取余数;
小数 乘以2(8,16)正取整数。
表3种进数制的对照表
十进制 二进制 八进制 十六进制 0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6