进制的转换——新手篇

前一段时间,有一个朋友总是问我进制的问题,问不同的进制之间是如何转换的,那下面我就说一下吧。
(注:本文不讨论计算机的相关问题)

要弄懂进制怎样转换,就要先弄懂什么是进制。
进制也就是进位计数制,是人为定义的带进位的计数方法(除不带进位的计数方法以外)。 对于任何一种进制——x进制,就表示每一位置上的数运算时都是逢x进一位。比如,十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,那么以此类推,x进制就是逢x进一。(详情请见:进制
二进制的范围是0到1,八进制的范围是0到7,十进制的范围是0到9,那么十六进制的范围是0到15吗?当然不是,10到15是两位数,不存在啊,这可怎么办呢?别急,用字母代替不就行了,所以十六进制的范围是0到9和A到F。

下表是一些常用的进制。

十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14
21 10101 25 15
22 10110 26 16
23 10111 27 17
24 11000 30 18
25 11001 31 19
26 11010 32 1A
27 11011 33 1B
28 11100 34 1C
29 11101 35 1D
30 11110 36 1E
…… …… …… ……

看完上面这个表格,有的人可能会说,我去,这是什么玩意儿啊?彻底懵了!
不用担心,我刚学习进制的时候,当时也懵了,但是耐心琢磨几天之后就掌握的差不多了。
众所周知,十进制逢十进一,二进制逢二进一,八进制逢八进一,十六进制逢十六进一,这个应该很好理解(如果还是不理解就仔细琢磨琢磨吧,相信你)。但是,如果我们在日常生活中用上表这种方法进行进制转换的话,要是将十进制数97649转换成其他进制数,这不得累死我们啊。
这时候,有人可能会说,用计算器啊。嗯,使用计算器的确很方便,但是如果不用呢?(观众:谁这么傻啊,有计算器不用?)额……就是让你用一个方法在纸上算出来,我们可以用短除法。比如将一个十进制数38转换为二进制数,我们就用38除以2(十进制数转换为几进制数就除以几),得到商19余0;再用19除以2,得到商9余1;再用9除以2,得到商4余1……一直这样除下去,直到商为0的时候,把所有余数从下往上倒过来排列,就得到了一组数——100110,这组数就是十进制数38转换为二进制数的结果(如下图),十进制数转换成其他进制数也同样适用(除其他进制数转换成十进制数以外)。
使用短除法将十进制数38转换为二进制数
当然,如果我们写代码是遇到这样需要进行进制转换情况,这种方法也行不通,也是很麻烦,所以这个时候就需要计算器出场了。上面的短除法只是一个普通的方法,并不适合用于“代码生涯”,一旦计算时出现一个小小的bug,那么后面的bugs就够你受的了。(观众:那你为什么还要教我们这种方法呢?!)我这只是让你掌握这样的一个技能,会总比不会好吧。

有的人会说进制很难,但有的人说进制很简单。但是不管是难还是简单,都要把它学好。尤其是进制,这是计算机学习最基础的东西。如果你要学习计算机,这就是刚刚入门就要学习的东西。要是进制转换学不好,那么计算机硬件就没办法学了。在软件学习中用得比较少,但还是会用到一些的。
最后,祝大家在自己的计算机生涯里欢快地遨游吧!
(本文仅供参考)

猜你喜欢

转载自blog.csdn.net/m0_47253594/article/details/106296261