R进制转十进制使用“按权站开发”
将R进制数的每一位数值用R^K表示,幂的底数是R,指数为K,K与该位和小数点之间的距离有关,当该位位于小数点的左边,K值是该位和小数点之间数码的个数,而当该位位于小数点右边,K值是负值,其绝对值是该位和小数点之间数码的个数加1。
栗子1:
二进制:10100.01 = 1*2^4+1*2^2+1*2^-2
栗子2:
七进制:604.01 = 6*7^2+4*7^0+1*7^-2
十进制转R进制使用“短除法”
栗子3:将十进制94转二进制
二进制|十进制 余数
2|94 0
2|47 1
2|23 1
2|11 1
2|5 1
2|2 0
2|1 1
0
一直除到0为止,将余数反序排列,即为二机制,结果为 “1 011 110”。
栗子4:将十进制94转八进制
二进制|十进制 余数
8|94 6
8|11 3
8|1 8
0
一直除到0为止,将余数反序排列,即为八进制,结果为 “836”。
二进制转八进制和十六进制及2^N进制,惯用技巧
栗子4:将二进制1 011 110转八进制
将1011110按“从右致左,没3位一段,不足部分用0补齐”,即001011110 ,然后每3位转换成八进制:
第一段“001”,1*2^0 = 1
第二段“011”,1*2^1 + 1*2^0 = 3
第三段“110”,1*2^2 + 1*2^1= 6
转换后的八进制数为“136”
栗子4:将二进制1 011 110转16进制
将1011110按“从右致左,没4位一段,不足部分用0补齐”,即001011110 ,然后每3位转换成八进制:
第一段“0000”,0
第二段“0101”,1*2^2 + 1*2^0 = 5
第三段“1110”,1*2^3 + 1*2^2 + 1*2^1 = 14(E)
转换后的十六进制数为“5E”
扩散思维
通过“栗子3个”,“栗子4”联想到,将二进制转换成2^N进制的算法技巧
2^3(8)进制,每3个一段;2^4(16)进制,每4个一段;推测4(2^2)进制,每2个一段;推测32(2^5)进制,每5位一段;
推理验证
将二进制1 011 110转四进制:==> 01011110 ==> 1132,
验证过程“1 011 110”的十进制为“94” ==> “94”转换成四进制为“1132”;
将二进制1 011 110转三十六进制:==> 0001011110 ==> 2U(U对应30),
验证过程“1 011 110”的十进制为“94” ==> “94”转换成三十六进制为“2M”(M对应22);
总结:将2进制转换成2^N位时,当N小于5时,即转换16进制以下时,每N位一段,分段转换的方法才成立