学习计算机也快两年了,参加一个笔试,忽然被问到11进制转3进制,虽然这是计算机的基础知识,却还是忽然一头雾水。今天仔细复习整理了一下,将所有进制转换规律写在这里。
一、二进制与十进制的转换永远是最经典也最实用的,学会了这个,其他也自然好解。
1.二进制转十进制
例如二进制数1100101,现在转换为十进制。方法就是从最小位开始用位上的数字乘以2的位数次方,请看下面的例子。
1100101=1*2^0+0*2^1+1*2^2+0*2^3+0*2^4+1*2^5+1*2^6=101
2.十进制转二进制
例如再将101转回来,我采用的是取余法,用这个数除以2,将余数写在后面。直接上图。最后一排红字可能看不清,写的是一直除到商0为止,但是不能把这个0写到结果中,这是结束的标志。结果从下往上读。
所以转换后的结果为1100101。
3.二进制转十六进制再转十进制
二进制转成十六进制,其实本质的原理也是运用了二进制转十进制,所以说学会二进制和十进制的相互转换尤为重要。首先我们要清楚一个规则,十六进制中用0-9和a-f代表16个数字,10、11、12、13、14、15分别对应的是a、b、c、d、e、f。转换之后的十六进制数之前要写上Ox。清楚了规则,我们下面来讲一下具体步骤:
(1)把二进制数从右往左四个为一组分好,如果左边不够了就在前面补0。例如10101,分组之后是1 0101,这时候就写成0001 0101。
(2)用二进制转十进制的办法计算每一组的数值。
(3)用我上面讲的规则写出十六进制数就可以了。例如下面例子中第一组为15,就是f,最后一组为11,就是b。所以最后的结果是Oxf3c。转换完毕,是不是so easy呢?
现在把上述的十六进制Oxf3c转换为10进制
Oxf3c=11*16^0+3*16^1+15*16^2=3899
是否看懂了呢?其实和二进制转十进制如出一辙,只是将2换成了16而已。
4.十进制转十六进制再转二进制
十进制转十六进制,其实和十进制转二进制是一样一样的呢。就把刚才的这个数3899转回来,请看图:
看图你就会明白,其实只是把2换成了16,现在又变成 15 3 11啦,就是Oxf3b。
十六进制转二进制,其实都已经转成十进制了,再把十进制转二进制不完了吗,但如果要直接把十六进制转为二进制,我建议直接能记住下面的规则
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 二进制
0 1 2 3 4 5 6 7 8 9 a b c d e f 十六进制
这样不管怎么转,都不用计算直接一目了然了。
就是二进制的四位对应十六进制的一位,最简单的还是上述的查表法。上述的将二进制转化为十六进制也不需要计算,直接查表即可。当然表还是要记住的,不过有规律很好记哦~
5.二进制转八进制转十进制
首先给出八进制的规则,由八位数字组成(0-7),其实几进制就是几个数字组成嘛~,八进制需要在前面加一个O。下面是二进制和八进制对照表
000 001 010 011 100 101 110 111 二进制
0 1 2 3 4 5 6 7 八进制
二进制转八进制,其实用上面的规则就可以啦,简单迅速,但是为了分析原理,还是赘述一下。二进制转八进制,从右边起每三位为一组,左边不够补0。将每一组按二进制变十进制那样计算出结果。例如:
转换后的结果就是O153
八进制转十进制,就像之前的一样,几进制就乘以几的次方就行了。
O153=3*8^0+5*8^1+1*8^2=107
6.十进制转八进制转二进制
同十六,没必要赘述了。
7.n进制转m进制(n,m在2-16之间)
总体的规则就是n进制先转成十进制,再把十进制转成m进制,参考了一下觉得这是相对简便的方法。
例如五进制数42130转成七进制数怎么转呢?
(1)五进制数42130转成十进制:
42130=3*5+5^2+2*5^3+4*5^4=15+25+250+2500=2790
(2)十进制数2790转成七进制
七进制数11064,转换完毕。
那为什么我们平时使用的都是二进制,八进制,十进制,十六进制,而很少听说三进制,十一进制什么的呢?
电脑中所有的数据都将回归0和1,就是二进制,所以学会使用二进制是非常直观明了的,这就好比,用你和计算机都懂的语言对话,而不用在中间弄一些翻译官。但是二进制数很长,就像我上面写得例子,十进制数101变成二进制是1100101,而我们的计算机,就算是一个int都有4个字节,一个字节8位,那么一个int就有32个0或1组成。这么多0,1,我们显然是眼花缭乱了,所以使用4,8,16进制可以更加精简有效的表示,当然他们还有特定的用途。注意到没有,4,8,16正好是2的2,3,4次方,用这些进制来表示,越大的进制数字就能越短。现在还有一种说法是对称三进制比二进制计算机更加强大(也只是道听途说,毕竟没有用过)。
进制转换是计算机入门知识,也是一个很精妙的关系,仔细深究还有很多学问。。。嗯。。。滚去学习吧