1.2计算机中信息的表示
数据是人类能够识别或计算机能够处理的某种符号的集合,包括数字、文字、声音、图像等,经过加工处理后用于人们制定决策或具体应用的数据称做信息。信息的表示有两种形态:一种是人类可识别和理解的信息形态;一种是计算机能够识别和理解的信息形态。由于计算机硬件是由电子元器件组成的,而电子元器件大多都有两种稳定的工作状态,可以很方便地用来表示“0”和“1”。因而在计算机内部普遍采用“0”和“1”表示的二进制,这就使得通过输入设备输入到计算机中的任何信息,都必须转换成二进制数的表示形式,才能被计算机硬件所识别。
1.2.1进位计数制
要掌握进位计数制,必须先掌握数码、基数、进位计数制、位权的概念。下面以十进制为例,来介绍上述概念。
(1)组成十进制数的0~9这些数字符号称为数码。
(2)全部数码的个数称为基数。十进制数的基数为10。
(3)用“逢基数进位”的原则进行计数,称为进位计数制。十进制的计数原则是“逢十进一”。
(4)进位后的数字,按其所在位置的前后,将代表不同的数值,表示各位有不同的“位权”。十进制数个位的“1”,代表1,即个位的位权是1;十位的“1”,代表10,即十位的位权是10;百位的“1”,代表100,即百位的位权是100,依次类推,位权与基数的关系是:位权的值等于基数的若干次幂。
例如:十进制数346.7可以展开成下面的多项式:346.7=3×102+4×101+6×100+7×10-1,式中102、101、100、10-1即为该位的位权,每一位上的数码与该位权的乘积,就是该位的数值。任何一种数制表示的数都可以写成按位权展开的多项式之和,一般形式为:N=dn-1bn-1+dn-2bn-2+dn-3bn-3+…+d-mb-m
式中:n----整数的总位数
m---小数的总位数
d下标---该位的数码
b----基数
b上标---位权
1.2.2常用的进位计数制及书写规则
1、计算机中常用的进位计数制有:二进制、八进制、十进制、十六进制,其数码如下:
二进制:0、1
八进制:0、1、2、3、4、5、6、7
十进制:0、1、2、3、4、5、6、7、8、9
十六进制:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
2、书写规则有两种:在数字后面加英文标识,或在括号外面加数字下标。
(1)在数字后面加英文标识
B(Binary):表示二进制数。如,二进制数500可写成500B。
O(Octonary):表示八进制数。如,八进制数500可写成500O。
D(Decimal):表示十进制数。如,十进制数500可写成500D。一般约定D可省去不写,即无后缀的数字为十进制数。
H(Hexadecimal):表示十六进制数。如,十六进制数500可写成500H。
(2)在括号外面加数字下标
(1001)2:表示二进制数1001。
(3423)8:表示八进制数3423。
(5679)10:表示十进制数5679。
(3FE5)16:表示十六进制数3FE5。
3、进位计数制之间的转换
(1)非十进制数转换成十进制数
转换方法:将要转换的非十进制数的各位数字与它的位权相乘,其积相加,和数就是十进制数。
例:(101101.11)2=1×25+0×24+1×23+1×22+0×21+1×20+1×2-1+1×2-2=32+0+8+4+0+1+0.5+0.25=(45.75)10
(123.4)8=1×82+2×81+3×80+4×8-1=64+16+3+0.5=(83.5)10
(5F.A)16=5×161+15×160+10×16-1=80+15+0.0625=(95.0625)10
(2)十进制数转换成非十进制数
转换方法:将十进制数转换为其他进制数时,可将此数分成整数与小数两部分分别转换,然后再拼接起来即可。
整数部分转换:将十进制整数连续除以非十进制数的基数,并将所得余数保留下来,直到商为0,然后用“倒数”的方式(第一次相除所得余数为最低位,最后一次相除所得余数为最高位),将各次相除所得余数组合起来即为所要求的结果。此法称为“除以基数倒取余法”。
小数部分转换:将十进制小数连续乘以非十进制数的基数,并将每次相乘后所得的整数保留下来,直到小数部分为0或已满足精确度要求为止,然后将每次相乘所得的整数部分按先后顺序(第一次相乘所得整数部分为最高值,最后一次相乘所得的整数部分为最低值)组合起来。
例:将(25.6875)10转换成二进制数。
整数部分转换如下:
2 25 余数
2 12 1 二进制整数低位
2 6 0
2 3 0
2 1 1
0 1 二进制整数高位
整数部分为(11001)2
小数部分转换如下:
0.6875
×) 2
1.3750…………..1 二进制小数高位
0.3750
×) 2
0.7500…………..0
0.7500
×) 2
1.5000……………1
0.5000
×) 2
1.0000……………1 二进制小数低位
小数部分为:(0.1011)2
将整数部分与小数部分组合起来,即:(25.6875)10=(11001.1011)2
说明:
a.十进制纯小数转换时,若遇到转换过程无穷尽时,应根据精度的要求确定保留几位小数,以得到一个近似值。
b.十进制与八进制、十六进制的转换方法和十进制与二进制之间的转换方法相同,这里不再举例。
(3)二、八、十六进制数的相互转换
a.二进制数与八进制数之间的转换,由于一位八进制数对应三位二进制数,因此转换方法如下:
二进制数转换为八进制数:将二进制数以小数点为界,分别向左、向右每三位分为一组,不足三位时用0补足(整数在高位补0,小数在低位补0),然后将每组三位二进制数转换成对应的八进制数。
例:将(1011010.1)2转换成八进制数
001 011 010.100
1 3 2 4 (1011010.1)2=(132.4)8
八进制数转换为二进制数:按原数位的顺序,将每位八进制数等值转换成三位二进制数。
例:将八进制数(756.3)8转换成二进制数
7 5 6 . 3
111 101 110 011 (756.3)8=(111101110.011)2
b.二进制数与十六进制数之间的转换:由于一位十六进制数对应四位二进制数,因而转换方法如下:
二进制数转换为十六进制数:将二进制数以小数点为界,分别向左、向右每四位分为一组,不足四位时用0补足(整数在高位补0,小数在低位补0),然后将每组的四位二进制数等值转换成对应的十六进制数。
例:将二进制数(1100111001.001011)2转换成十六进制数。
0011 0011 1001.0010 1100
3 3 9 2 C (1100111001.001011)2=(339.2C)16
十六进制数转换为二进制数:按原数位的顺序,将每位十六进制数等值转换成四位二进制数。
例:将(AB3.57)16转换成二进制数
A B 3 . 5 7
1010 1011 0011 0101 0111
(AB3.57)16=([1**********]1.01010111)2