大学计算机基础(Windows 7+Office 2010)(第二版)
上QQ阅读APP看书,第一时间看更新

1.2.2 不同数制间的转换

1.几种常用的数制

日常生活中人们习惯使用十进制,有时也使用其他进制。例如,计算时间采用六十进制,1小时为60分,1分为60秒;在计算机科学中也经常涉及二进制、八进制、十进制和十六进制等;但在计算机内部,不管什么类型的数据都使用二进制编码的形式来表示。下面介绍几种常用的数制:二进制、八进制、十进制和十六进制。

(1)常用数制的特点

表1-1列出了几种常用数制的特点。

表1-1 常用数制的特点

(2)常用数制的对应关系

常用数制的对应关系如表1-2所示。

表1-2 常用数制的对应关系

(3)常用数制的书写规则

为了区分不同数制的数,常采用以下两种方法进行标识:

①字母后缀:

·二进制数用B(binary)表示。

·八进制数用O(octonary)表示。为了避免与数字0混淆,字母O常用Q代替。

·十进制数用D(decimal)表示。十进制数的后缀D一般可以省略。

·十六进制数用H(hexadecimal)表示。

例如,10011B、237Q、8079和45ABFH分别表示二进制、八进制、十进制和十六进制。

②括号外面加下标。例如,(10011)2、(237)8、(8079)10和(45ABFH)16分别表示二进制、八进制、十进制和十六进制。

2.常用数制间的转换

(1)将r进制转换为十进制

将r进制(如二进制、八进制和十六进制等)按位权展开并求和,便可得到等值的十进制数。

【例1-1】将(10010.011)2转换为十进制数。

(10010.011)2=1×24+1×21+1×2-2+1×2-3

=(18.375)10

【例1-2】将(22.3)8转换为十进制数。

(22.3)8=2×81+2×80+3×8-1

=(18.375)10

【例1-3】将(32CF.4B)16转换为十进制数。

(32CF.4B)16=3×163+2×162+C×161+F×160+4×16-1+B×16-2

=3×163+2×162+12×161+15×160+4×16-1+11×16-2

=(13007.292969)10

(2)将十进制转换为r进制

将十进制转换为r进制(如二进制、八进制和十六进制等)的方法如下:

整数的转换采用“除以r取余”法,将待转换的十进制数连续除以r,直到商为0,每次得到的余数按相反的次序(即第一次除以r所得到的余数排在最低位,最后一次除以r所得到的余数排在最高位)排列起来就是相应的r进制数。

小数的转换采用“乘以r取整”法,将被转换的十进制纯小数反复乘以r,每次相乘乘积的整数部分若为1,则r进制数的相应位为1;若整数部分为0,则相应位为0,由高位向低位逐次进行,直到剩下的纯小数部分为0或达到所要求的精度为止。

对具有整数和小数两部分的十进制数,要用上述方法将其整数部分和小数部分分别进行转换,然后用小数点连接起来。

【例1-4】将(18.38)10转换为二进制数。

先将整数部分“除以2取余”。

因此,(18)10=(10010)2

再将小数部分“乘以2取整”。

因此,(0.38)10=(0.01100)2

最后得出转换结果:(18.38)10=(10010.01100)2

(3)八进制、十六进制与二进制之间的转换

由于8=23,16=24,所以一位八进制数相当于三位二进制数,一位十六进制数相当于四位二进制数。

①二进制数转换为八进制数或十六进制数:以小数点为界向左和向右划分,小数点左边(整数部分)从右向左每三位(八进制)或每四位(十六进制)一组构成一位八进制或十六进制数,位数不足三位或四位时最左边补0;小数点右边(小数部分)从左向右每三位(八进制)或每四位(十六进制)一组构成一位八进制或十六进制数,位数不足三位或四位时最右边补0。

【例1-5】将(10010.0111)2转换为八进制数。

因此,(10010.0111)2=(22.34)8

【例1-6】将(10010.0111)2转换为十六进制数。

因此,(10010.0111)2=(12.7)16

②八进制数或十六进制数转换为二进制数:把一位八进制数用三位二进制数表示,把一位十六进制数用四位二进制数表示。

【例1-7】将(22.34)8转换为二进制数。

因此,(22.34)8=(10010.0111)2

【例1-8】将(12.7)16转换为二进制数。

因此,(12.7)16=(10010.0111)2

以上介绍了常用数制间的转换方法。其实,使用Windows操作系统提供的“计算器”可以很方便地解决整数的数制转换问题。方法如下:

①选择“开始”→“所有程序”→“附件”→“计算器”命令,启动计算器。

②选择计算器“查看”→“科学型”命令。

③单击原来的数制。

④输入要转换的数字。

⑤单击要转换成的某种数制,得到转换结果。