1.1.2 信息表示方式
电脑是处理信息的工具,而信息既包括数字这样的数值信息,也包括文字符号、图像、声音等非数值信息。一切信息在电脑内部的存放、传输、处理均采用二进制数的形式,所以二进制是电脑中信息表示及处理的基础。
1.进位计数制和二进制
计数方法有多种,在日常生活中我们最常见的是国际上通用的计数方法——十进制计数法。除了十进制外,还有其他计数制,如一天24小时,称为24进制,1小时60分钟,称为60进制,这些统称为进位计数制。在电脑中使用的是二进制。
进位计数制有两个基本要素:基数和位权。
基数是一种进位计数制所使用的数码状态的个数。如十进制是根据“逢十进一”的原则进行计数的,则它的数值是由数码0,1,2,…,8,9来表示的,所以十进制计数制的基数为10。二进制是根据“逢二进一”的原则计数的,它的数值由数码0和1来表示,所以其基数为2。
同样道理,八进制用数码0,1,2,…,7表示,基数为8。十六进制由0,1,2,…,8,9,A,B,C,D,E,F表示,其中A表示十进制数10,B表示十进制数11,依此类推,F表示十进制数15,所以它的基数为16。一般,K进制数有K个数字,所以基数为K,最大数码为K-1。
位权表示一个数码所在的位。数码所处的位不同代表数的大小也不同。如十进制数从右面起第一位是个位,第二位是十位,第三位是百位,…。“个,十,百,千…”就是十进制的“位权”。每一位数码与该位“位权”的乘积表示该位数值的大小。
对于任何一种进位计数制的数字,我们都可以用一个表达式对其进行表示,这个式子如下:
S=Kn-1Pn-1+Kn-2Pn-2+K1P1+ K0P0+ K-1P-1+…+K-mP-m
其中:S表示任一数;i表示数的某一位,Ki为第i位的数码;P表示该进位计数制的基数,Pi代表第i位的位权;n为小数点左边位数;m为小数点右边位数,这个式子又叫做进位计数制的按权展开式。例如:
十进制数197.96可表示为:
(197.96)10 = 1×102 + 9×101 + 7×100 + 9×10-1 + 6×10-2
二进制数1101可表示为:
(1101)2 = 1×23 + 1×22 + 0×21 + 1×20
2.不同进位计数制间的转换
虽然在电脑内部是使用二进制进行工作,但对于用户来说,由于二进制位数过长,读写也比较困难,使用起来很不方便。因此,人们通常用八进制和十六进制作为二进制的缩写方式。这就存在一个不同进制数之间的转换问题。转换的原则是:将整数部分和小数部分分别转换,然后用小数点连接。
(1)二进制数转换为十进制数
将二进制数转换为十进制数一般采用按权展开求和法,即将二进制数写成按权展开形式,再把各项求和,得到十进制数。
例如:求(1101.101)2的等值十进制数。
(1101.101)2 = 1×23 + 1×22 + 0×21 + 1×20 + 1×2-1 + 0×2-2 + 1×2-3
= 8 + 4 + 0 + 1 + 0.5 + 0 + 0.125
= (13.625)10
(2)十进制数转换为二进制数
整数转换采用除2取余法:用2多次除被转换的十进制整数,在每次相除之后,若余数为1,则对应的二进制位为1;若余数为0,则对应的二进制位为0。首次除法得到的余数为二进制数的最低位。最后一次除法得到的余数为二进制数的最高位。从低位到高位逐次进行,直到商为0为止。
小数部分的转换采用乘2取整法:即用2多次乘被转换的十进制整数,每次相乘后,所得乘积的整数部分为对应的二进制位的数。第一次乘积所得整数部分就是二进制数小数部分的最高低,其次为次高位,最后一次是最低位。
例如:把(13.625)10转换为二进制数。
第一步:用除2取余法进行整数部分转换。
所以 (13)10 = (1101)2
第二步:用乘2取整法进行小数部分转换。
0.625×2 = 1.250……1
0.250×2 = 0.500……0
0.500×2 = 1.000……1
所以(0.625)10 = (0.101)2
得出(13.625)10 = (1101.101)2
需要注意的是,在进行小数转换时,有些十进制小数不能转换为有限位的二进制小数,则只有用近似值表示。
例如:(0.57)10不能用有限位二进制表示,如果求6位小数近似值,则得
(0.57)10 ≈(0.100100)2
(3)二进制数与八进制数、十六进制数的相互转换
由于23 = 8,所以每三位二进制数恰好对应一位八进制数。
把二进制数转换为八进制数时,只需将整数部分自右向左和小数部分自左向右每三位为一组分配,若不足三位时用0补齐,然后将每三位二进制数转换为一位八进制数,即可完成转换。
例如:把(1101001.1011)2转换为八进制数。
(1101001.1011)2 = (001) (101) (001) . (101) (100) = (151.54)8
把八进制数转换为二进制数时,只需把每位八进制数用对应的三位二进制数表示即可。
二进制和十六进制数的转换与二进制数和八进制数的转换相似,只是由于24 = 16,所以按四位进行分组。
例如:把(5D.7A4)16转换为二进制数。
(5D.7A4)16 = (0101) (1101).(0111) (1010) (0100)
= (1011101.0111101001)2
3.计算机中数的表示
在普通数字中,用“+”或“-”符号加在数的绝对值之前来区分数的正负。在计算机中如何表示有符号数呢?
在计算机中有符号数包含三种表示方法:原码、反码和补码。
(1)原码表示法
用机器数的最高位代表符号位,其余各位是数的绝对值。符号位若为0,则表示正数,若为1,则表示负数。
例如:X = +1001010 Y = -1001010
则 [X]原= 01001010 [Y]原= 11001010
(2)反码表示法
正数的反码和原码相同,负数的反码是对原码除符号位外各位取反。
例如:[X]反= 01001010 [Y]反= 10110101
(3)补码表示法
正数的补码和原码相同,负数的补码是该数的反码加1。
例如:[X]补= 01001010 [Y]补= 10110110
需要说明的是:引入补码的概念后,加减法运算都可以用加法来实现。而且符号位也和数字一样对待,且两数的补码之“和”等于两数“和”的补码。这为加减法运算带来很多方便。另外,计算机中的“乘”、“除”也可以转换成“加”、“减”进行运算。所以,在计算机中只设计一个简单的加法器就可以执行各种算术运算,从而大大简化了电路设计。因此,在近代计算机中,“加”、“减”多采用补码运算。
4.计算机中的字符编码
目前在微机中最普遍采用的字符编码是ASCII码,即美国标准信息交换码。它是用七位二进制数进行编码的,可以表示128个字符,其中包括0~9十个数码,以及大小写英文字母和一些其他字符,如字母“A”的ASCII码为“1100001”,“!”的ASCII码为“1000001”。
实际上,一个字符的ASCII码占8个二进制位,即一个字节,最高位用作奇偶检验位。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。