二进制数第 0位的权值是 2的 0次方,第 1位的权值是 2的 1次方……
所以,设有一个二进制数:0110 0100,转换为 10进制为:
下面是竖式:
0110 0100 换算成 十进制
第 0位 0 * 20 = 0
第 1位 0 * 21 = 0
第 2位 1 * 22 = 4
第 3位 0 * 23 = 0
第 4位 0 * 24 = 0
第 5位 1 * 25 = 32
第 6位 1 * 26 = 64
第 7位 0 * 27 = 0 +
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
0乘以多少都是 0,所以我们也可以直接跳过值为 0的位:
1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100
2.2 八进制数转换为十进制数
八进制就是逢 8进 1。
八进制数采用 0~7这八数来表达一个数。
八进制数第 0位的权值为 8的 0次方,第 1位权值为 8的 1次方,第 2位权值为8的 2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第 0位 7 * 80 = 7
第 1位 0 * 81 = 0
第 2位 5 * 82 = 320
第 3位 1 * 83 = 512 +
--------------------------
839
同样,我们也可以用横式直接计算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
2AF5换算成 10进制:
第 0位: 5 * 160 = 5
第 1位: F * 161 = 240
第 2位: A * 162 = 2560
3
第 3位: 2 * 16
= 8192 +
-------------------------------------
10997
直接计算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示 10,而 F表示 15)
现在可以看出,所有进制换算成 10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是一千二百三十四?你尽可以给他这么一个
算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 10
0
10进制数转换成二进制数,这是一个连续除 2的过程:
把要转换的数,除以 2,得到商和余数,
将商继续除以 2,直到商为 0。最后将所有余数倒序排列,得到数就是转换结果。
听起来有些糊涂?我们结合例子来说明。比如要转换 6为二进制数。
“把要转换的数,除以 2,得到商和余数”。
那么:
要转换的数是 6,6÷2,得到 商是 3,余 数是 0。(不要告诉我你不会计算 6÷3!)
“将商继续除以 2,直到商为 0……”
现在商是 3,还不是 0,所以继续除以 2。
那就: 3 ÷ 2, 得到商是 1,余数是 1。
“将商继续除以 2,直到商为 0……”
现在商是 1,还不是 0,所以继续除以 2。
那就: 1÷2, 得到商是 0,余数 是 1 (拿笔纸算一下,1÷2是不是商 0余 1!)
“将商继续除以 2,直到商为 0……最后将所有余数倒序排列”
好极!现在商已经是 0。
我们三次计算依次得到余数分别是:0、1、1,将所有余数倒序排列,那就是:110了!
6转换成二进制,结果是 110。
把上面的一段改成用表格来表示,则为:
被除数
计算过
程
商 余数
6 6/2 3 0
3 3/2 1 1
1 1/2 0 1
(在计算机中,÷用 / 来表示)
如果是在考试时,我们要画这样表还是有点费时间,所更常见的换算过程是使用下图的连除:
(图:1)
请大家对照图,表,及文字说明,并且自已拿笔计算一遍如何将 6转换为二进制
数。
说了半天,我们的转换结果对吗?二进制数 110是 6吗?你已经学会如何将二进
制数转换成 10进制数了,所以请现在就计算一下 110换成 10进制是否就是 6。
3.2 10进制数转换为 8、16进制数
非常开心,10进制数转换成 8进制的方法,和转换为 2进制的方法类似,惟一变化:除数由 2变成 8。
来看一个例子,如何将十进制数 120转换成八进制数。
用表格表示:
被除数
计算过
程
商 余数
120 120/8 15 0
15 15/8 1 7
1 1/8 0 1
120转换为 8进制,结果为:170。
非常非常开心,10进制数转换成 16进制的方法,和转换