常用的进位计数制2007-06-19 10:54  不管是人类还是计算机都可以进行计算,这种计算包括1+2=3这样的算术运算,也包括1>2这样的逻辑运算。在人类发展的过程中,通过"逢十进一"的计算方法已经得到了广泛的运用,由于计算机所采用的物理材料的特点,计算机从一开始就设计成采用"逢二进一"的计算方法。那么,计算机是如何进行计算的,又是采用何中规则与人类惯用的"十进制"进行转换的呢?
进位计数制
  数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。
  按进位的方法进行计数,称为进位计数制。
  在日常生活中,人们最常用的是十进位计数制,即按照逢十进一的原则进行计数;在计算机中采用的是二进位计数制,即按照逢二进一的原则进行计数。
  在进位计数制中有数位、基数和位权三个要素。数位是指数码在一个数中所处的位置;基数是指在某种进位计数制中,每个数位上所能使用的数码的个数;位权是指在某种进位计数制中,每个数位上的数码所代表的数值的大小,等于在这个数位上的数码乘上一个固定的数值,
这个固定的数值就是这种进位计数制中该数位上的位权。数码所处的位置不同,代表数的大小也不同。例如数1011,在不同进位数制中所表示的数的大小不同。见图3.1
图 3.1 不同进位制中数的表示
  其中任何一个数的运算通式为:knkn-1。。。k1k0 k-1。。。k-m = ki R i
几种常用的进位计数制
 进位计数制很多,这里主要介绍与计算机技术有关的四种常用进位计数制。
  1.十进制
  十进位计数制简称十进制.十进制数具有下列特点:
  (1)有十个不同的数码符号0、1、2、3、4、5、6、7、8、9。
  (2)每一个数码符号根据它在这个数中所处的位置(数位),按"逢十进一"来决定其实际数值,即各数位的位权是以10为底的幂次方。例如:数(123.456) 10
(123.456)10=1×102+2×101+3×100+4×10-1+5×10-2+6×10-3 (1)
  由上述分析可归纳出,任意一个十进制数K,可表示成如下形式:
(K)10=Kn-1×10n-1+Kn-2×10n-2+…+K1×101+K0×100+K-1×10-1+K-2×10-2+…+K-m+1×10-m+1+K-m×10-m (2)
  式(2)中K为数位上的数码,其取值范围为0~9;N为整数位个数,M为小数位个数,10为基数,10n-1,10n-2…,101,100,10-1,…,10-m是十进制数的位权。
在计算机中,一般用十进制数作为数据的输入和输出。
  2. 二进制数的特点
在计算机中使用的是二进制数,其实二进制与十进制是类似的,只不过是逢二进一。如二进制数1101,可展开为:
1×23+1×22+0×21+1×20 (3)
将(3)式与(1)式作比较,便会发现二进制数的基数为"2",而不是"10"。相应的权也发生了变化,不是103、102、101、100,而是23、22、21、20。基变则权变。
  3. 八进制数的特点
  由于二进制数太长,不便记忆,在计算机中还经常使用十六进制数和八进制数。
八进制数的特点是逢八进一。因此其基为"8",权则变为"8"的次方。八进制数则用0-7这八个数码来表示。
  4. 十六进制数的特点
  十六进制数的特点是逢十六进一。因此其基为"16",权则变为"16"的次方。十六进制数用0-9,10个数码加上A、B、C、D、E、F六个字母码来表示,A-F分别对应于10-15这六个数。
二进制小数如何转换成十进制
表3.1 十六进制数0-F与二、八、十进制数的对应关系
不同进位制数间的转换
  由于计算机使用的是二、八、十六进制,而人们日常习惯于用十进制进行计算,因此在计算机和人交流信息的过程中就必须进行相应的数据转换。
将非十进制数转换为十进制数
  将非十进制数转换为十进制数的方法只有一个:
   
  1. 将二进制数 ( 11011.101 ) 2转换为十进制数
  具体做法如下:
 (11011.101)2 =1×24+1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3
  =16+8+2+1+0.5+0.125
  =(27.625)10
  2. 将八进制数( 123.24 ) 8转换为十进制数
 (123.24)8=1×82+2×81+3×80+2×8-1+4×8-2
  =(83.3125)10
  3. 将十六进制数(3AB.48)16转换十进制数
  (3AB.48)16 =3×162+10×161+11×160+4×16-1+8×16-2
  =(939.28125)10
将十进制数转换为非十进制数
  把十进制数转换为非十进制数的方法是:
 
  其中二、八、十六进制的基数分别为2、8、16。按上述规则,可进行相应的转换。
  1.十进制转换为二进制
  转换规则:整数部分"除2取余法";小数部分"乘2取整法"。
  例3.1 将十进制数(14.125)10转换为二进制数
 
 
  上面的例子中,小数部分经过有限次乘2取整过程即告结束。但也有许多情况可能是无限的,要根据精度的要求在适当的位数上截止。对八进制和十六进制也有同样的情况。
  2.十进制数转换成八进制数
  十进制数转换成八进制数的方法是:整数部分转换采用"除8取余法";小数部分转换采用"乘8取整法"。
  例3.2 将十进制数(1275.6875)10转换成八进制数。 
 
  即(1725.6875)10=(3275.54)8
  3.十进制数转换十六进制数
  将十进制数转换成十六进制数的方法是:整数部分转换采用"除16取余法";小数部分转换采用"乘16取整法"。
  例3.3 将十制数(12345.671875)10转换为十六进制数。
 
非十进制数与非十进制数之间的转换
  1.二、八进制之间的相互转换
  八进制数转换为二进制数的规则是:以小数点为界,分别向左和向右,每位八进制数用相应的3位二进制数表示,小数点保留原位。
  二进制数转换成相应的八进制数的规则是:以小数点为界,分别向左和向右每3位二进制数为一组,用相应的八进制数来表示。
  值得注意的是:无论是向左或向右,最后不足3位二进制数时用"0"补足3位。
 
  2.二、十六进制之间的相互转换
  十六进制数转换为二进制数的规则是:以小数点为界,分别向左和向右,每位十六进制数用相应的4位二进制数表示,小数点保留原位。
  把二进制数转换成相应的十六进制数的规则是:以小数点为界,分别向左向右每4位二进制数为一组,用相应的十六进制数来表示。
  值得一提的是:无论是向左或向右,最后不足4位二进制数时用"0"补足4位。
 
二进制与计算机
  计算机是对数据信息进行高速自动化处理的机器。这些数据信息是以数字、字符、符号以及表达式来体现的,它们都以二进制编码形式与机器中的电子元件状态相对应。二进制与计算机的密切关系,是与二进制本身所具有的特点分不开的。概括起来,有下列几点:
  1.可行性