二进制数第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 1 2 3 4 5 6 7
0 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 0 * 2 + 1 * 2 + 1 * 2 + 0 * 2 = 100
0 乘以多少都是0,所以我们也可以直接跳过值为0 的位:
2 3 5 6
1 * 2 + 1 * 2 + 1 * 2 + 1 * 2 = 100
2.2 八进制数转换为十进制数
八进制就是逢8 进1。
八进制数采用 0~7 这八数来表达一个数。
八进制数第0 位的权值为8 的0 次方,第1 位权值为8 的1 次方,第2 位权值为
8 的2 次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507 换算成十进制。
0
第0 位 7 * 8 = 7
第1 位 0 * 81 = 0
第2 位 5 * 82 = 320
第3 位 1 * 83 = 512 +
839
同样,我们也可以用横式直接计算:
0 1 2 3 =
7 * 8 + 0 * 8 + 5 * 8 + 1 * 8 839
结果是,八进制数 1507 转换成十进制数为 839
2AF5 换算成10 进制:
0
第0 位: 5 * 16 = 5
1
第1 位: F * 16 = 240
2
第2 位: A * 16 = 2560
3
第3 位: 2 * 16 = 8192 +
10997
直接计算就是:
0 1 2 3
5 * 16 + F * 16 + A * 16 + 2 * 16 = 10997
(别忘了,在上面的计算中,A 表示10,而F 表示15)
现在可以看出,所有进制换算成10 进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是一千二百三十四?你尽可以给他这么一个
算式:
3 2 1 0
1234 = 1 * 10 + 2 * 10 + 3 * 10 + 4 * 10
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 转换成二进制,