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