题目: (123A.B)H=(?)Q
解: 一般的思路是16进制-->10进制-->8进制(即以10进制为桥梁)
或者 16进制-->2进制-->8进制 (即以2进制为桥梁)
实际上,还有更好的方法。(放在最后讨论)
法1:
转10进制:
整数部分:1*163+2*162+3*161+10*160=4666 (十进制)
小数部分:11*16-1=0.6875 (十进制)
合起来是:4666.6875
转8进制:
整数部分:采用不断除以8,取余倒排的方法,得:110728
小数部分:采用不断乘以8,取整正排的方法,得:0.548
合起来是:11072.548
法2:
转2进制:
整数部分:0001 0010 0011 10102 (一个16进制位需要4个二进制位表示)
小数部分:10112
合起来是:0001 0010 0011 1010.10112
转8进制:
整数部分:001 001 000 111 010 2 -->110728 (一个8进制位只需要3个二进制位表示)
小数部分:101 1002 -->548
合起来是:11072.548
法3:
1*163 + 2*162 + 3*161 + 10*160 + 11*16-1
=1*(8*2)3 + 2*(8*2)2 + 3*(8*2)1 + 10*(8*2) 0 + 11*(8*2)-1
=8*83 + 8*82 + 6*81 + 10*80 + 5.5*8-1
=886a.(5.5) (很明显,这个8进制数很不规则 0.0)
类比10进制的进位规则,这里,应为:满8进一
整数部分:110728
小数部分:一位大小为5.5的数字应该怎么处理呢?因为不满8肯定不能进位啊。那就只有一个办法了:往小数点后扩充几位数字(即5*8-1+X*8-2+..),使 得它们的“总体和”为5.5。
5.5*8-1=5*8-1+X*8-2 ==> x=4
合起来是:11072.548
完了。只要多注意观察,多思考,好方法就出来啦。^_^