进制的相互转换学习记录

看到朋友的面试题中关于进制转换的题,发现怎么转换的简直懵逼得不能再懵逼了
遂百度一下算法,然后加以实践,在纸上计算一二,并记录下来,以备后习

2进制转10进制

m为数字,n为长度,右边算起,m*2的0次方+m*2的1次方,+...+m*2的n-1次方

二进制数:10111
十进制:23
计算方式

1-----4次方-----1*2*2*2*2
0-----3次方-----0*2*2*2
1-----2次方-----1*2*2
1-----1次方-----1*2
1-----0次方-----1*1

百度经验: 二进制如何转十进制,十进制如何转二进制

2进制转4进制 取二合一

右边算起,00->0,01->1,10->2,11->3
二进制:10111
四进制:113 计算:1(1)01(1)11(3)

倒推可以得出:113= 01 01 11 即 10111

2进制转8进制 取三合一

右边算起,000到111的组合按大小对应0-7

即:000->0,001->1,010->2,011->3,100->4,101->5,110->6,111->7
二进制:10111
八进制:27 计算:10(010->2) 111(7)

百度经验: 二进制如何转换成八进制,八进制如何转成二进制

2进制转16进制 取四合一

右边算起,0000到1111的组合按大小对于0-9,A-Z
可发现规律映射关系
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
于是
二进制:10111
十六进制:17 计算:1(1) 7(0111)

同理16进制转2进制倒退即可,左边的0抹掉即可

百度经验: 二进制数与十六进制数之间如何互相转换

10进制转换2进制

十进制数:18
转换2进制:10010
计算方式:

18=16+2
-----2的4次方=10000
-----2的1次方=     10
-----------------=10010

10进制转2进制 除2取余法

10进制转4进制 除4取余法

10进制转8进制 除8取余法

10进制转16进制 除16取余法

十进制数:2230
转换8进制:4266
计算方式

2230/8------278------余-----6
278/8---------34------余-----6
34/8------------4------余-----2
4<8	取4

从下往上数即为:4266

10进制转换成2.4.8进制使用取余法即刻,除以对于的进制数,得其余数,从最后的商开始,从下往上数得到结果

其余进制的转换,如8进制转4进制,可以先将其转换为2进制,再将2进制转换为4进制...

原文地址:https://www.cnblogs.com/morang/p/7551986.html