进制转换

学习计算机也快两年了,参加一个笔试,忽然被问到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次方,用这些进制来表示,越大的进制数字就能越短。现在还有一种说法是对称三进制比二进制计算机更加强大(也只是道听途说,毕竟没有用过)。

进制转换是计算机入门知识,也是一个很精妙的关系,仔细深究还有很多学问。。。嗯。。。滚去学习吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值