1.3.1 进位计数制及相互转换
1.几种常用的进位计数制
进位计数制很多,这里主要介绍与计算机技术有关的4种常用的进位计数制。
(1)十进制
十进位计数制简称十进制。十进制数的特点是“逢十进一”,任意一个十进制数都可用0、1、2、3、4、5、6、7、8、9这10个数字符号组成的字符串来表示,这些数字符号称为数码。
数码处于不同的位置将代表不同的数值。例如:
(169.6)10=1×102+6×101+9×100+6×10-1 (1)
由(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
式中的K为数码,取值范围为0~9;n为整数位个数,m为小数位个数,10为基数,10n-1、10n-2、…、101、100、10-1…10-m是十进制数的位权。在计算机中,一般用十进制数作为数据的输入和输出。
(2)二进制
计算机内部使用的是二进制数。二进制数的特点是只有两个数码符号——0和1,运算规则是逢二进一。例如:
(1010.1)2=1×23+0×22+1×21+0×20+1×2-1 (2)
将(2)式与(1)式比较,便会发现二进制数的基数为“2”,而不是“10”。相应的位权也发生了变化,不是104、103、102、101、100,而是24、23、22、21、20。
(3)八进制
由于二进制数太长,不便记忆,因而在计算机中还经常使用八进制数和十六进制数。八进制数的特点是逢八进一,每一个八进制数都由0~7这8个数码来表示。
(4)十六进制
十六进制数的特点是逢十六进一,每一个十六进制数都是由0~9这10个数码再加上A、B、C、D、E、F这6个字母来表示,A~F分别对应10~15这6个数。
计算机中常用的几种进位计数制如表1-2所示。
表1-2 计算机中的进位计数制
2.不同进位制数间的转换
由于计算机使用的是二、八、十六进制,而人们习惯于用十进制进行计算,因此,在计算机和人交流信息的过程中就必须进行相应的数据转换。
(1)R进制转换为十进制
方法:按权展开求和,即个位数字乘100,十位数字乘101,百位数字乘102……。下面分别是十六进制、八进制、二进制转换成十进制的示例:
(354)H=(3×162+5×161+4×160)D=(768+80+4)D=(852)D
(254)O=(2×82+5×81+4×80)D=(128+40+4)D=(172)D
(11010)B=(1×24+1×23+0×22+1×21+0×20)D=(16+8+0+2+0)=(26)D
(2)十进制转换成R进制
将一个十进制整数转换成R进制是采用“除R逆序取余”法,即将十进制整数连续地除以R取余数,直到商为0为止,余数从下到上排列。
小数部分转换成R进制是采用“乘R顺序取整”法,即将十进制小数不断地乘以R取整数,直到小数部分为0或达到一定精度为止,余数从上到下排列。
例如:将十进制数100.8125转换成二进制数。转换结果为(100.8125)D=(1100100.1101)B。
再如:将十进制数193.15转换成八进制数。转换结果为(193.15)D≈(301.11463)O。
(3)二进制与八进制、十六进制之间的转换
由于二进制、八进制和十六进制之间存在特殊关系:81=23、161=24,即1位八进制数相当于3位二进制数,1位十六进制数相当于4位二进制数,因此转换方法比较容易。
①二进制数转换成八进制数时,整数部分是从最后一位开始向左数,三个数一组,不足用“0”补上;小数部分则是从第一位开始向右数,3个数一组,不足用“0”补上。
例如:将二进制数(10101011.110101)B转换成八进制数。
(整数高位补0)
再如:将八进制数(2731.62)O转换成二进制数。
(整数前的高位0可取消)
②二进制数转换成十六进制数时,与二进制转换为八进制类似,只不过是每4位为一组,两头不足4位补0即可。
例如:将二进制数(10101011.110101)B转换成十六进制数。
(小数低位补0)
再如:将十六进制数(2D5C.74)H转换成二进制数。
(整数前的高位0和小数后的低位0可取消)
二进制、十进制、八进制、十六进制的对应关系如表1-3所示。
表1-3 常用进制的对应关系