1.3 信息在计算机中的表示与编码
1.3.1 信息在计算机中的表示
1.信息表示
计算机处理的信息是以数值、文字、图像、声音等不同形式出现的。在计算机内部,信息必需转化成数字编码,才能被传送、存储和处理。计算机采用二进制编码。
(1)物理上容易实现:计算机由逻辑电路组成,逻辑电路通常只有两个状态,即开关的接通与断开,这两种状态正好可以用“1”和“0”表示。
(2)算术运算简单:两个二进制数和、积运算组合各有3种,运算规则简单,有利于简化计算机内部结构,提高运算速度。
(3)易于实现逻辑运算和逻辑判断:逻辑代数是逻辑运算的理论依据,二进制只有2个数码,正好与逻辑代数中的“真”和“假”相吻合。
2.信息存储单位
(1)位(bit),简记为 b,是计算机内部存储信息的最小单位。一个二进制位只能表示0或1。
(2)字节(byte),简记为B,是计算机内部存储信息的基本单位。一个字节由8个二进制位组成,即1B=8b。
(3)字(word),一个字通常由一个字节或若干个字节组成,是计算机进行信息处理时一次存取、加工和传送的数据长度。
(4)字长:1个字所包含的二进制位数。字长是衡量计算机性能的一个重要指标,字长越长,计算机一次所能处理信息的实际位数就越多,运算精度就越高,最终表现为计算机的处理速度越快。
(5)信息存储单位换算:1B=8b;1KB=1 024B;1MB=1 024KB;1GB=1 024MB;1TB=1 024GB;1PB=1 024TB;1EB=1 024PB;1ZB=1 024EB;1YB=1 024ZB。
1.3.2 信息编码
编码:用按一定规则组合而成的若干位二进制码来表示数或字符,目前编码主要有数字编码、字符编码和汉字编码。
1.数字编码
数字编码是指用若干位二进制代码来表示一位十进制数。
BCD码是用四位权为8421的二进制数来表示等值的一位十进制数。
例:(731)10=(?)BCD;(731)10=(011100110001)BCD(见表1-1)。
表1-1 731的转换
2.字符编码
(1)ASCII码:是American Standard Code for Information Interchange(美国信息互换标准代码)的简称。有7位和8位ASCII码两种。采用7位二进制编码,表示27=128个字符,每个字符由8位二进制码组成,最高位为0。
空格的ASCII码为00100000(十进制数为32);
数字0~9的ASCII码为0110000~0111001(十进制数为48~57);
字母A~Z的ASCII码为1000001~1011010(十进制数为65~90);
字母a~z的ASCII码为1100001~1111010(十进制数为97~122)。
(2)扩展的ASCII码:8位ASCII码称为扩展的ASCII码字符集。它可表示256个字符,包括兼容的7位ASCII码。
3.汉字编码
(1)汉字输入码(外码):计算机标准键盘上按键的不同组合形成的编码。如,区位码、五笔字型、智能ABC码等。
(2)汉字机内码:汉字信息处理系统内部识别、存储、编辑和传输所用的编码。内部码=国标码+8080H。
(3)字形输出码——汉字点阵图形码:对汉字形状进行描述的二进制编码,每一个二进制位(bit)代表一个点。一个方形汉字常用16×16点阵描述。存储一个16×16点阵汉字需要16×16÷8=32字节。
(4)Unicode编码:由国际标准化组织ISO于20世纪90年代初制定的一种字符编码标准,它用两个字节表示一个字符,允许表示65 536个字符,世界上几乎所有的书面语言都能用单一的Unicode编码表示。
(5)信息的内部表示和外部显示:数字、文本、图形图像、声音等各种各样的信息都可以在计算机内存储和处理,而计算机内表示它们的方法只能采用二进制编码。
1.3.3 数制及其转换
1.进制数及表示方法
(1)K进制数的性质
① 在K进制中,具有K个数字符号。
② 在K进制中,由低位向高位是按“逢K进一”的规则进行计数。
③ K进制的基数是“K”,K进制数的第i位(i=n,…,2,1,0,-1,-2…)的权为“K”,并约定整数最低位的位序号i=0。
常用的数制有:
① K=10为十进制,可使用0,1,…,9共10个数字符号。
② K=2为二进制,可使用0,1共2个数字符号。
③ K=8为八进制,可使用0,1,…,7共8个数字符号。
④ K=16为十六进制,可使用0,1,…,9,A,B,C,D,E,F共16个数字符号。
(2)K进制数的书写格式
K进制数书写格式可以用后缀表示,也可以用括号和下标K表示。
① 二进制数用英文字母B作为后缀,例如:1010B,也可用(1010)2表示。
② 八进制数用英文字母O作为后缀,例如:271O,也可用(271)8表示。
③ 十六进制数用英文字母H作为后缀,例如:1C2FH,也可用(1C2F)16表示。
④ 十进制数用英文字母D作为后缀,例如:98D,也可用(98)10表示。
(3)十、二、八、十六进制数之间的对应关系(见表1-2)
表1-2 制数的对应关系
2.不同进制数之间的转换
(1)K进制数转换为十进制数
转换规则:将二进制数、八进制数、十六进制数的各位按权展开相加。
口诀:位权展开式。例如:
(11010.101)2=1×24+1×23+0×22+1×21+0×20+1×2-1+0×2-2+1×2-3
=16+8+0+2+0+0.5+0+0.125
=(26.625)10
(275.04)8=2×82+7×81+5×80+0×8-1+4×8-2
=2×64+7×8 +5×1+0+0.0625
=(189.0625)10
(B7A.8)16=B×162+7×161+A×160+8×16-1
=11×256+7×16+10×1+8×0.0625
=(2938.5)10
(2)十进制数转换为K进制数
整数部分转换规则:除2(8、16)取余,直至商为0,结果自底向上排列。
口诀:除基(2、8、16)取余,逆排列。例如:
小数部分转换规则:乘2(16、8)取整,直至小数为0,结果自顶向下排列。
口诀:乘基(2、16、8)取整,顺排列。例如:
当十进制数包含有整数和小数两部分时,可按上面的两种方法将整数和小数分别转换,然后相加。
(3)非十进制数之间的转换
① 八(十六)进制数转换为二进制数
每位八(十六)进制数可以转换为等值的三(四)位二进制数,反之亦然。
转换规则:将八(十六)进制数的每一位展开为三(四)位二进制数,去掉整数首部和小数尾部的0即可。
口诀:一位写三/四。例如:
(7D.C4)16=(1111101.11000100)2
② 二进制数转换为八(十六)进制数
转换规则:以小数点为中心向两边,每三(四)位分成一组(首尾不足者补0),将每组二进制数写成与之对应的八(十六)进制数。
口诀:三/四位分组,逐组转换。例如:
3.二进制数的定点及浮点表示
(1)定点表示法:是指计算机中的小数点位置是固定不变的。分为定点整数及定点小数表示法。定点整数的小数点固定在数的最低位之后,定点小数的小数点固定在数的符号位和最高位之间。
定点整数表示的数值范围为(-1111111)~(+1111111),即(-27+1)~(27-1)。
(2)浮点表示法:是指计算机中的小数点位置不是固定的,或者说是“浮动的”。
任何一个二进制数N都可以表示为:N=2±E×(±S)
式中,E称为阶码,它是一个二进制正整数;E前的±号为阶码的正负号,称为阶符(Ef)。S称为尾数,它是一个二进制正小数;S前的±号为尾数的正负号,称为尾符(Sf)。式中“2”是阶码E的底数。
4.二进制数的原码,反码及补码的表示(见表1-3)
正数的原码、反码和补码形式相同,即最高位为0,表示正数,其余位表示数值的大小;
负数的原码:最高位为1,表示负数,其余位表示数值的大小;
负数的反码:对其原码逐位取反(符号位除外);
负数的补码:在其反码的末位加1。
表1-3 二进制数的原码、反码及补码的表示示例
5.二进制数的运算
(1)二进制的算术运算:与十进制的算术运算相同,但运算法则更为简单。进行二进制数加法与减法运算时,只要注意按“逢2进1”和“借1当2”处理即可。
加法规则:0+0=0 0+1=1 1+0=1 1+1=10
减法规则:0-0=0 1-0=1 1-1=0 10-1=1
乘法规则:0×0=0 0×1=0 1×0=0 1×1=1
除法规则:0÷1=0 1÷1=1(0不能作除数)
例如:1010+0110=10000,1010-0110=0100。
(2)二进制的逻辑运算:与、或、非、异或4种基本运算,它们可以由相应的计算机逻辑电路实现。逻辑值只有“真”“假”两种,“真”记为1,“假”记为0。
“与”运算规则(见表1-4):仅当所有的输入都为1时,输出才为1;而只要有一个输入为0,输出便为0。
表1-4 “与”运算规则示例
“或”运算规则(见表1-5):只要有一个输入为1,输出便是1;只有所有的输入皆为0,输出才是0。
表1-5 “或”运算规则示例
“非”运算规则:输入与输出具有相反值(见表1-6)。
表1-6 “非”运算规则示例
“异或”运算规则(见表1-7):当两种输入信号不同时,输出为1;当两种输入信号相同时,输出为0。
表1-7 “异或”运算规则示例