2.1 进位制及其转换
2.1.1 进位制
进位制又称进制,是人们规定的一种计数方式。“逢十进一”就是十进制,“逢二进一”就是二进制,“逢k进一”就是k进制,其中k称为基数。生活中有很多使用不同进制计数的例子,比如:一个小时有60分钟,用的是六十进制;一个星期有7天,用的是七进制;一年有12个月,用的是十二进制;计算机只能存储0和1,用的是二进制。
1.十进制
人们生活中最常用的是十进制。十进制由0,1,2,…,9十个基本数字组成,十进制按照“逢十进一”的规则运算,基数为10。计数时,数字从右到左,第一位数字表示1的个数,第二位数字表示10的个数,第三位数字表示100的个数,依此类推。例如,十进制数3721表示:有1个1,2个10,7个100(7个102),3个1000(3个103)。
2.二进制
二进制数有两个特点:它由两个基本数字0,1组成;运算规律是逢二进一。
为区别于其他进制数,二进制数的书写通常在数的右下方标注基数2,或数字后面加B表示。例如,二进制数10110011可以写成(10110011)2,或写成10110011B,对于十进制数可以不加注。计算机中的数据均采用二进制数表示,这是因为二进制数具有以下特点:
①二进制数中只有两个字符0和1,表示元器件的两个不同稳定状态。例如,电路中有无电流,有电流用1表示,无电流用0表示。类似的,如电路中电压的高低,晶体管的导通和截止等。
②二进制数运算简单,大大简化了计算中运算部件的结构。
二进制数的加法和乘法运算法则如下:
0+0=0 0+1=1 1+0=1 1+1=10
0×0=0 0×1=0 1×0=0 1×1=1
3.八进制
由于二进制基数较小,所以二进制数据的书写和阅读不方便,为此,在计算机中引入了八进制(但最终以二进制形式存在),如UNIX系统的文件权限就用八进制数表示。八进制的基数k=8=23,由基本数字0、1、2、3、4、5、6、7组成,并且每个基本数字正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加o表示,例如,二进制数(11101010.010110100)2对应八进制数(352.264)8或352.264o。
4.十六进制
由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数。十六进制数有两个基本特点:它由16个字符0~9以及A、B、C、D、E、F(它们分别表示十进制数10~15)组成;十六进制数运算规律是逢十六进一,即基数k=16=24,通常在表示时用尾部标志H或下标16以示区别。例如,十六进制数4AC8可写成(4AC8)16,或写成4AC8H。用十六进制或八进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么计算机中偏偏是用十六或八进制数表示二进制数,而不用其他的,诸如九进制或二十进制呢?这是由于2、8、16分别是21、23、24。这一点使得三种进制之间可以非常直接地互相转换。八进制或十六进制缩短了二进制数的表达长度,但保持了二进制数的表达特点。