任务二 数据在计算机中的表示
【任务描述】
小张知道利用计算机技术可以采集、存储和处理各种用户信息,也可将这些用户信息转换成用户可以识别的文字、声音或音视频进行输出,然而让小张疑惑的是,这些信息在计算机内部又是如何表示的呢?该如何对信息进行量化呢?小张认为,学习好这方面的知识,才能更好地使用计算机。
【任务目标】
1.认识计算机中的数据及其单位。
2.了解数制及其转换。
3.认识二进制数的运算。
4.了解计算机中字符的编码规则。
【任务实现】
(一)了解数制
数制即表示数的方法,按进位的原则进行计数的数制称为进位数制,简称“进制”。对于任何进位数制,都有以下特点:
数码:每一进制都有固定数目的记数符号(数码)。如十进制有10个数码0~9。
基数:在进制中允许选用基本数码的个数称为基数。如十进制的基数为10。
位权表示法:一个数码在不同位置上所代表的值不同,如数码8,在个位数上表示8,在十位数上表示80,这里的个(100)、十(101)……,称为位权。位权的大小以基数为底,数码所在位置的序号为指数的整数次幂。一个进制数可按位权展开成一个多项式,例如:
123.45=1×102+2×101+3×100+4×10-1+5×10-2
为了区分各进制数,规定在十进制数后面加D,二进制数后面加B,八进制数后面加O,十六进制数后面加H,且十进数的D可以省略。
1.二进制(Binary)
数码:只有两个数字符号,即0和1。
基数:基数是2。
位权表示法:例如,1010=1×23+0×22+1×21+0×20。
2.八进制(Octal)
数码:它有8个数字符号,即0,l,2,3,4,5,6,7。
基数:基数是8。
位权表示法:例,731=7×82+3×81+1×80。
3.十六进制(Hexadecilnal)
数码:它有16个数字符号0,l,2,3,4,5,6,7,8,9,A,B,C,D,E,F。
基数:基数是16。
位权表示法:例如,8f=8×161+f×160。
(二)各进制数之间的转换
各进制编码值之间的对应关系见表1-2。
表1-2 各进制编码值
1.其他进制转换成二进制
采用位权展开法求和时,以十进制累加。
例:(1010)2=1×23+0×22+1×21+0×20=(10)10
(731)8=7×82+3×81+1×80=(473)10
(8f)16=8×161+f×160=(143)10
2.十进制转换成二进制数
十进制到二进制的转换,通常要区分数的整数部分和小数部分,并分别按除以2取余数部分和乘以2取整数部分两种不同的方法来完成。
(1)十进制数整数部分转换为二进制数的方法与步骤。
对整数部分,要用除以2取余数的办法完成十→二的进制转换,其规则是:
①用2除十进制数的整数部分,取其余数为转换后的二进制数整数部分的低位数字;
②再用2去除所得的商,取其余数为转换后的二进制数高一位的数字;
③重复执行第二步的操作,直到商为0,结束转换过程。
例如:将十进制数37转换成二进制数。转换过程如图1-2所示。
图1-2 将十进制数37转换成二进制数
每一步所得的余数从下向上排列,即转换后的结果为(100101)2。
(2)十进制小数部分转换二进制数方法与步骤。
对小数部分,要用乘以2取整数办法完成十→二的进制转换,其规则是:
①用2乘以十进制数的小数部分,取乘积的整数为转换后的二进制数的最高位数字;
②再用2乘以一步乘积的小数部分,取新乘积的整数为转换后二进制小数低一位数字;
③重复第二步操作,直至乘积部分为0,或已得到的小数位数满足要求,结束转换过程。
例如,将十进制数0.43,转换成二进制小数,如图1-3所示。
图1-3 将十进制数0.43转换成二进制小数
每一步所得的整数从上向下排列,即转换后的二进制小数为(0.01101)2。
3.二进制与八进制转换
由表1-2各进制编码值可以得出每3个二进制位对应1个八进制位,由此得出以下规律:
整数部分:由低位向高位每3位一组,高位不足3位用0补足3位,然后每组分别按权展开求和即可。
小数部分:由高位向低位每3位一组,低位不足3位用0补足3位,然后每组分别按权展开求和即可。
例如:将(1010111.01101)2转换成八进制数的方法是
所以(1010111.01101)2=(127.32)8
例如:将(327.5)8转换为二进制的方法是
所以(327.5)8=(11010111.101)2
4.二进制与十六进制转换
由表1-2各进制编码值可以得出每4个二进制位对应1个十六进制位,由此得出以下规律:
整数部分:由低位向高位每4位一组,高位不足4位用0补足4位,然后每组分别按权展开,求和即可。
小数部分:由高位向低位每4位一组,低位不足4位用0补足4位,然后每组分别按权展开求和即可。
例如:将(110111101.011001)2转换为十六进制数的方法是
所以(110011101.011001)2=(19D.64)16
例如:将(26.EC)16转换成二进制数方法是
所以(26.EC)16=(100110.111011)2
5.八进制与十六进制的转换
以二进制作为转换的中间工具。
例如:(327.5)8=(11010111.101)2=(D7.A)16
(三)数据与编码
1.位、字节和字
计算机中数据的常用单位有位、字节和字。位是度量数据的最小单位,在数字电路和计算机技术中采用二进制,代码只有0和1。1个字节由8个二进制数位组成。字节是计算机中用来表示存储空间大小的基本容量单位。例如,计算机内存的存储容量,磁盘的存储容量等都是以字节为单位表示的。除用字节为单位表示存储容量外,还可以用千字节(KB)、兆字节(MB)以及十亿字节(GB)等表示存储容量。它们之间存在下列换算关系:
1 B=8 bit
1 KB=1024 B=210B
1 MB=1024 KB=210KB=220B
1 GB=1024 MB=210MB=230B
1 TB=1024 GB=210GB=240B
★要注意位与字节的区别:位是计算机中最小数据单位,字节是计算机中基本信息单位。
2.ASCII码
从键盘向计算机中输入的各种操作命令以及原始数据都是字符形式的。然而,计算机只能存储二进制数,这就需要对符号数据进行编码,输入的各种字符由计算机自动转换成二制编码存入计算机。
目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。表1-3为ASCII码。
表1-3 ASCII码
表1-3 ASCII码中对大小写英文字母、阿拉伯数字、标点符号及控制符等特殊符号规定了编码,表中每个字符都对应一个数值,称为该字符的ASCII码值。
表中有94个可打印字符,例如:
“a”字符的编码为1100001,对应的十进制数是97。
“A”字符的编码为1000001,对应的十进制数是65。
“0”字符的编码为0110000,对应的十进制数是48。
表中还有34个非图形字符(又称控制字符),例如:
sp(Space)空格、cr(Carriage Return)回车、del(Delete)删除。
3.汉字编码
(1)国标码:ASCII码只对英文字母、数字和标点符号作了编码。为了使计算机能够处理、显示、打印、交换汉字字符等,同样需要对汉字进行编码。我国于1980年发布了国家汉字编码标准《信息交换用汉字编码字符集—基本集》(GB 2312—1980)将收录的汉字分成两级:一级是常用汉字计3755个,按汉语拼音排列;二级汉字是次常用汉字计3008个,按偏旁部首排列。因为一个字节只能表示256种编码,所以,一个国标码必须用两个字节来表示。
国标规定:一个汉字用两个字节来表示,每个字节只用前7位,最高位均未作定义。汉字国标码编码的格式,见表1-4。
表1-4 汉字国标码编码的格式
(2)内码与外码:国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,国标码是不可能在计算机内部直接采用的,于是,汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节的最高位由0改为1,其余7位不变,汉字机内编码的格式,见表1-5。
表1-5 汉字机内编码的格式
在计算机系统中,由于内码的存在,输入汉字时就允许用户根据自己的习惯使用不同的输入码,进入系统后再统一转换成内码存储。如用拼音输入法输入“国”字和用五笔输入法输入“国”字,它们在计算机内都是以同一个内码的方式存储。这样就保证了汉字在各种系统之间的交换成为可能。与内码对应,输入法编码称为外码。
(3)汉字字形码:字形存储码是指供计算机输出汉字(显示或打印)用的二进制信息,也称字模。通常采用的是数字化点阵字模。图1-4所示为点阵字形。
图1-4 点阵字形
汉字字形码是一种用点阵表示字形的码,是汉字的输出形式。它把汉字排成点阵。常用的点阵为16×16、24×24、32×32或更高。每一个点在存储器中用一个二进制位(bit)存储。例如,在16×16的点阵中,需8×32bit的存储空间,每8 bit为1字节,所以,需32字节的存储空间。在相同点阵中,不管其笔画繁简,每个汉字所占的字节数相等。点阵规模越大,字形越清晰美观,所占存储空间也越大。其缺点是字形放大后产生的效果差。
为了节省存储空间,普遍采用了字形数据压缩技术。矢量表示方式存储的是描述汉字字形的轮廓特征,当要输出汉字时,通过计算机的计算,由汉字字形描述生成所需大小和形状的汉字点阵。矢量化字形描述与最终文字显示的大小分辨率无关,因此可产生高质量的汉字输出,避免了汉字点阵字形放大后产生的锯齿现象。
各种汉字编码之间的关系如图1-5所示。
图1-5 汉字编码之间的关系
【任务评价】
【课后练习】
1.1 KB的准确数值是( )。
A.1024 B
B.1000 B
C.1 0 24 bit
D.1024 MB
2.在关于数制的转换中,下列叙述正确的是( )。
A.采用不同的数制表示同一个数时,基数(R)越大,则使用的位数越少
B.采用不同的数制表示同一个数时,基数(R)越大,则使用的位数越多
C.不同数制采用的数码是各不相同的,没有一个数码是一样的
D.进位计数制中每个数码的数值不仅取决于数码本身
3.十进制数55转换成二进制数等于( )。
A.111111
B.110111
C.111001
D.111011
4.与二进制数101101等值的十六进数是( )。
A.2D
B.2C
C.1D
D.B4
5.二进制数111+1等于( )B。
A.10000
B.100
C.1111
D.1000
6.一个汉字的内码与它的国标码之间的差是( )。
A.2020 H
B.4040 H
C.8080 H
D.AOAOH