进制的转换与计算方法
外语专业排名-河南一本线
一、从十进制到二进制
如果有人问:
10+10=?
您可能会不加思索地回答:“等于20。”这样的回答对不
对呢?可
以说对,也可以说不对,这要进行具体的分析。说
对,是因为我们平时都是用十进制,也即用逢十进一的
方法
来进行计算的。但如果从下面即将介绍的二进制,即逢二进
一的观点来看,那么,上述回答
则是错的。
我们的祖先,很早以前就创造了十进制,并将它作为计数
的基础,这是因
为人类有十个手指和十个脚趾这个天生的计
算工具。几千年来,人类一直沿用十进制,这是因为在一般<
br>情况下,使用十进制比用其他进制要方便得多。
但是,在日常生活中,并不是全都采用
十进制来计数的。
例如,一年有十二个月,这是十二进制;一小时等于六十分
钟,一分钟等于六
十秒,这是六十进制;一公尺等于三市尺,
这是三进制;鞋、袜都是以双来计算的,一双等于两只,这<
br>是二进制。等等。
计算机作为一种计算工具,采用哪一种进制计数呢?计算
机
是由大量的电子器件组成的,在这些电子器件中,电路的
通和断、电位的高和低,用两种数字符号“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
考虑到运算简便、节省器件、容易实现、经济、
可靠等因
素,因此,在计算机内部通常用二进制代码来作为内部存储、
传输和处理信息的计数方
法。
二、十进制
十进制数计数的特点是“逢十进一”。为了表示十进制的
某
位数,需要10个数字0,1,2,3,4,5,6,7,8,9,
就是说十进制的基数为1
0。
在十进制数中,不同数位上的数字所表示的值是不相同
的。例如在十进制数16
3和1267中,数字6都出现在十位
数的位置上,因此,这两个数中的数字6的值都是60。通
常,我们把某一固定位置上的计数单位叫做位权,例如:
个位数的位权为10
0
=1 (基数10的0次方)
十位数的位权为10
1
=10 (基数10的1次方)
百位数的位权为10
2
=10×10=10 (基数10的2
次方)
千位数的位权为10
3
=10×10×10=1000
(基数10的
3次方)
……
由上述可见,在十进制计
数中,各位上的位权值是基数
10的若干次方。因此,任何一个十进制数都可以用横式展
开式(
位权表示法)来表示。例如:
(7852)
10
=7×10<
br>3
+8×10
2
+5×10
1
+2×10
0
三、二进制
1.二进制的计数
所谓二进制计
数,即每一位只有两个数,要么是0,要么
是1,而且顾名思义,是“逢二进一”。因此,二进制计数的
基数为2。
在十进制中,每个数可以用横式分解成个、十、百、千,……
各位数之和相加,例如:
(163)
10
=1×100+6×10+3×1
同样,在
二进制中,我们也可以用横式来分解二进制数。
例如,二进制数1010等于十进制数的多少呢?
(1010)
2
= (1000)
2
+ (10)
2
对应十进制的2×2×2=8 对应十进制
的2
在这里,二进制的10包括两个二进制位,因为是逢二进
一,每增加1位就乘以2。同
样,二进制1000包括二进制
的4个位,每增加1位也乘以2,所以,二进制的1000等
于
十进制的2×2×2=8。因此,二进制的1010等于十进
制的10,即(1010)
2=(10)
10
。按照这个原则,要表示十进制
的10,需要有4个二进制位,它
们之间的对应关系如表2-1
所示。
十进制
数
0
1
2
二进制
数
0000
0001
0010
3
4
5
6
7
8
9
10
0011
0100
0101
0110
0111
1000
1001
1010
表2-1
二进制的计数
2.二进制数转换成十进制数
与二进制计数类似
,根据位权表示法,在二进制数中的每
一位数字在不同位置上具有不同的值,而且二进制各位上的
位权值是基数2的若干次方,例如:
2
0
=1
2
1
=2×1=2
2
2
=2×2=4
2
3
=2×2×2=8
……
将二进制数转换成十进制数的方法是:
(1)把这个二进制数的最低一位(第0位)乘以2的
0次方
(即2
0
),倒数第二位(第1位)乘以2的1次方(即2
1
),……,
一直到最高位(第n位)乘以2的n次方(即2
n
)。
(2)最后将各项乘积相加,得到的结果就是二进制数所对应
的十进制数。
例2-1
把二进制数1101101转换成十进制数。
解:(1101101)
2
=1×2
6
+1×2
5
+0×2
4
+1×2
3+1×2
2
+
0×2
1
+1×2
0
=64 +32+0+8+4+0+1
=109
∴ (1101101)
2
=(109)
10
3.十进制数转换成二进制数
将十进制数转换成二进制数的方法是:
(1)将这个十进制数除以2,得到一个商数和余数;再
将得
到的商数除以2,又得到一个商数和余数;这样一直继续下
去,直到商数等于0为止。
(2)第一次得到的余数是对应二进制数的最低位,最后一次
得到的余数为对应的二进制
数的最高位,其它余数依次类
推。
这种转换方法称为“除2反向取余法”。
例2-2 把十进制数163转换成二进制数。
解:用竖式:
然后按从高位到低位顺序排列取其余数,便为这个十进制
数所对应的二进制数。即(1
63)
10
=(10100011)
2
二进制数,也可以用英文字母B来表示,例如(10100011)
2
=10100011B
我们可以将这个二进制数转换成十进制来验算。
(10
100011)
2
=1×2
7
+1×2
5
+1×2
1
+1×2
0
=(163)
10
例2-3
将十进制1023转换成二进制数。
解:
∴
(1023)
10
=(1111111111)
2
这个例
子说明,用十位数二进制,就能表示最大值可到
1023的十进制数,也即能表示0~1023共102
4个十进制
数。这就解答了前面提到的为什么计算机用二进制作为数的
最基本单位比用十进制作
为数的最基本单位要更加节省元
件的问题。
四、八进制
1.八进制的计数
在计算机中,所有的信息都是以二进制的方式来加以储存<
br>和运算的。但是,二进制数位数太多,冗长难记,所以人们
常常将它写成八进制和十六进制的方式
。
在八进制计数中,为了表示八进制的某位数,需要8个数
字0,1,2,3,4,
5,6,7。因此,八进制的基数为8,
它的计数特点是“逢八进一”。
2.八进制数转换成十进制数
将八进制数转换成十进制数,与二进制数转换成十制进制
数类似,可以用横式展开式(位权表示法)来完成。
例2-4
将八进制数653转换成十进制数。
解:(653)
8
=6×8
2
+5×8
1
+3×8
0
=384+40+3
=427
∴
(653)
8
=(427)
10
3.十进制数转换成八进制数
将十进制数转换成八进制数,与十进制数转换成二制进制
数类似,可以用“除8反向取余法”来完成。
例2-5 把十进制数427转换成八进制数。
解:用竖式:
然后按从高位到低位顺序排列取其余数,便为这个十进制
数所对应的八进制数。也即(
427)
10
=(653)
8
八进制数,也可以用英文字母Q来表示,例如(653)
8
=
653Q
五、十六进制
1.十六进制的计数
十六进制,顾名思义
是逢十六进一,它在计算机上的作用,
是用来缩短冗长的二进制数,以便于阅读和使用。在计算机
中,十六进制常用来缩写二进制地址。十六进制的数除0~
9以外,还用A、B、C、D、E、F等6
个字母来对应表
示十进制的10、11、12、13、14、15这六个数字。因此,<
br>十六进制的基数为16,它的计数特点是“逢十六进一”。
表2-2列出了十进制、十六进制、八进制和二进制的计数。
十进制
数
0
1
2
3
4
5
6
7
8
9
10
十六进
制数
0
1
2
3
4
5
6
7
8
9
A
八进制
数
0
1
2
3
4
5
6
7
10
11
12
二进制
数
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
11
12
13
14
15
16
B
C
D
E
F
10
13
14
15
16
17
20
1011
1100
1101
1110
1111
10000
2.十六进制数转换成十进制数
将
十六进制数转换成十进制数,与二进制数转换成十制进
制数类似,可以用横式展开式(位权表示法)来完
成。
例2-6 将十六进制数47A转换成十进制数。
解:(47A)
16
=4×16
2
+7×16
1
+10×16
0<
br>
=1024+112+10
=1146
∴
(47A)
16
=(1146)
10
3.十进制数转换成十六进制数
将十进制数转换成十六进制数,与十进制数转
换成二制进
制数类似,可以用“除16反向取余法”来完成。
例2-7
把十进制数1146转换成十六进制数。
解:用竖式:
然后按从高位到低位顺序排列取其余数,便为这个十进制
数所对应的十六进制数。也即(1146)10
=(47A)
16
十六进制数,也可以用英文字母H来表示,例如(1146)
10
=47AH。
六、 二进制、八进制、十六进制之间的关系
1.二进制与八进制之间的转换
由于8=2×2×2,即8=2
3
。可知一位八进制数相当于3位
二进制数。
(1)二进制数转换成八进制数
将一个二进制数转换成八进
制数,只要把二进制数从右往
左每三位计算出对应的一位八进制数(不足三位的,前面添
加“0
”补足三位)。
例2-8 将二进制数转换成八进数。
解:二进制数:
011 011 010 101
↓
↓ ↓ ↓
八进制数: 3 3 2
5
∴()
2
=(3325)
8
(2)八进制数转换成二进制数
将一个八进制数转换成二进制数,只要把每位八进制数用
对应的三位二制数来代替。
例2-9 将八进制数3675转换成二进制数。
解: 八进制数: 3 6
7 5
↓ ↓ ↓ ↓
二进制数: 011 110 111 101
∴(3675)
8
=()
2
在将八进制数转换成二进制数时,最后得到的二进制数最
高位的“0”往往都可以去掉。
2.二进制与十六进制之间的转换
由于16=2×2×2×2,即16=2
4
。因此,一位十六进制数相
当于4位二进制数。
(1)二进制数转换成十六进制数
将一个二进制数转换成十六进制数的方法是:只要把二进<
br>制数从右往左每四位为一组计算出对应的一位十六进制数
(不足四位的,前面添加“0”补足四位
)。
例2-10 将二进制数1转换成十六进制数。
解: 二进制数:
0100 1100 1111
↓ ↓
↓
十六进制数:4 C F
∴(1)
2
=(4CF)
16
(2)十六进制数转换成二进制数
将一位十六进制数转换成二进制数,只要把每位十六进制
数用对应的四位二制数来代替。
例2-11 将十六进数3B4C转换成二进制数。
解:十六进制数: 3 B
4 C
↓ ↓ ↓ ↓
二进制数: 0011 1011 0100 1100
∴(3B4C)
16
=(111)
2
在将十六进制数转换成二进制数时,最后得到的二进制数
最高位的“0”往往都可以去掉。
需要说明的是,表示一个数,如果是十进制数,则不必特
别注明果是二、八、十六进制数,则要用下标或
字母来说明。