您的位置:首页 > 其它

五分钟教会你任何进制之间的互相转换

2017-10-26 16:02 453 查看

什么是进制?

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

常见的进制

二进制 Binary

八进制 Octal

十进制 Decimal

十六进制 Hexadecimal

对应关系

二进制八进制十进制十六进制
0000000
0001111
0010222
0011333
0100444
0101555
0110666
0111777
10001088
10011199
10101210A
10111311B
11001412C
11011513D
11101614E
11111715F

进制之间的转换



转换关系

十转二

十转八

十转十六

二转八

二转十

二转十六

十六转二

十六转八

十六转十

……

这么多进制之间的转换,看完以后就再也不打算学了!其实根本没有那么复杂,上面的转换关系可以精简成如下关系:

十转其他

其他转十

十转X

整数部分,对X短除取余倒序

小数部分,与X相乘取整正序

X转十

按权展开求和

什么是权?

例如十进制数 111,三个“1”放在不同的位置,所代表的意义也不同。从左到右分别为 100,10,1。还可以表示为:1×102,1×101,1×100。

这里面10x 就叫做权,二进制则为2x,八进制为8x,以此类推。

OK,现在是不是简单了。到这里可能有人会有疑问了,你只说了十进制和其他进制之间的转换,那其他进制之间的转换呢?别着急往下看:

我们以二进制和十六进制的转换为例,首先大家看一下上面那个对应关系表,很容易就会发现一个规律——四位二进制数刚刚对应一位十六进制数所表示的范围(二进制的0000-1111对应十六进制的0-F)。OK知道这个规律以后,一切都变得明了了。那么将9F(H)转成二进制就可以分别将9和F转成四位二进制数,然后组合起来就好了,如下图:



那么9F(H)转成二进制数就是10011111,二进制转十六进制就是先讲二进制数四位一组的规则分好组,然后转成对应的十进制数(超过十的用A-F表示)。八进制和二进制的转换也是这个规律,只不过对应关系变成了三位二进制数对应一位八进制数而已。

PS:八进制和十六进制之间不能直接转换,八进制需要先转成二进制或十进制,在有对应的二进制或十进制转成十六进制,反过来也一样。

还没想好

十进制转其他进制的短除法我觉得还是有点麻烦,有没有更简单的方法呢?当然有啦,哈哈哈!其实方法很简单,就三个字——找节点。

节点表

二进制的权二进制数十进制
2011
21102
221004
2310008
241000016
2510000032
26100000064
2710000000128
28100000000256
291000000000512
210100000000001024
  

这个表有什么用呢?比如我们要将578转成二进制,我们不用短除法,我们看看上面表中与578最相近的数是多少?很容易就找到512,它是 29 对应的二进制数是1000000000(一个1后面九个0,2的n次方对应的二进制数是1后面n个0),578-512=66;再去表中找和66最相近的数,很容易找到了64,它是26,对应的二进制数是100000,66-64=2;2对应的二进制是10。这样很容易就计算出578对应的二进制数为1001000010。

十转八和十转十六同理,不再赘述了。

总结

通过上面的分析,我们知道只要掌握了十进制和任何一种进制之间的转换,那么我们就掌握了所有进制之间的互相转换了。而且我们还知道下面的规则:

十转X

整数部分,对X短除取余倒序

小数部分,与X相乘取整正序

还可以通过找节点的方式进一步简化

X转十

按权展开求和
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息