怎么把K进制数化为十进制数呢,比如:把1234(5)化为十进制数;把2进制数11111(2)化为十进制数;把89化为四进制、六进制数,这三个例子怎么算,然后告一下我具体遇到这类题的算法,我在线等啊
假设被转换的数字是k进制,需要将其转换为x进制数字;被转换数字一共有n位,每位记作kn位,则有其最低位数字为k1,第二位为k2,第三位为k3……以此类推。那么所有的进制数之间的转换都可以使用公式如下:
k1 * k^0 + k2 * k^1 + k3 * k^3 + ...... 即x = kn * k^(n-1)的累加
其中符号k代表x进制中k的表示方法,比如k进制为20进制,那么如果要转换为10进制(即x为10),则k是20;如果要转换为16进制,那么k为14(注意:同时公式的运算全部都要用20进制的运算方式来解,即16进制中14的2次方为190,而不是10进制的400)
问题一把1234(5)化为十进制数。根据以上公式(k为5、k1为4、k2为3、k3为2、k4为1),列式如下:4 * 5^0 + 3 * 5^1 + 2 * 5^2 + 1 * 5^3=194
问题二把2进制数11111(2)化为十进制数。根据以上公式(k为2、k1为1、k2为1、k3为1、k4为1、k5为1),列式如下:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 + 1 * 2^4=31
问题三把89化为四进制、六进制数。
首先来看4进制数,在4进制数中10表示为22,8表示为20,9表示为21,即这时k为22、k1为21、k2为20,列式如下21 * 22^0 + 20 * 22^1(四进制中22的0次方为1,22的1次方为22,21*1为21,22*20为1100,相加得结果1121;则有十进制89的四进制表示为1121;
继续来看6进制数,在6进制数种10表示为14,8表示为12,9表示为13,则有k=14、k1=13、k2=12,列式13 * 14^0 + 12 * 14^1 = 13 * 1 + 12 * 14 = 13 + 212 = 225;即十进制89转换为6进制表示为225
eg:1234(10)=1x1000+2x100+3x10+4x1
K进制化成十进制同理
1234(5)=1x5^3+2x5^2+3x5+4=125+50+15+4=194
11111=100000-1=2^6-1=31
89/4=22……1 个位
22/4=5……2 十位
5/4=1……1 百位
1/1=0……1 千位
所以89=1121(4)
用上面的方法验算一下
1121(4)=1x4^3+1^4^2+2x4+1=89
其他同理追问
那如果把一个k进制的数化成另一个进制的数怎么弄呢,比如,把五进制数30241(5)转化成七进制数,还有你上面说到的11111=100000-1=~~~~~~~~(太难打省略)怎么理解?
追答由于习惯十进制的计算,就我所知除了特殊转换否则很难由5直接转换为7,只能通过10来做中间变量
所谓的特殊比如把二进制转换为十六进制这在计算机里边是经常出现的。比如1011 1111
因为10000=16 所以1011 1111相当于16进制的十位和个位
1111=2^3+2^2+2+1=15,对应16进制的F
1011=2^3+2+1=11 对应16进制的B
1011 1111=1011 0000+1111=B 0+F=BF
9999=10000-1
二进制里面只有1和0,所以11111=100000-1
额,不太明白那一步怎么来的,同学们都说要把几进制的什么数变成几机制的什么数需要先变成什么什么才能化成,能具体解释一下吗,你可以把我当成学进数制的初学者看待,我不怕麻烦
追答五进制变成七进制是必须5->10->7才能实现的,必须以十进制为中间站
大部分进制转换都要经过十进制这个站点,这一点听得明白吗
但是有一些进制是特殊的,比如二进制和四进制
11在二进制换成十进制就是3
1011换成十进制就是11
那么现在把15换成4进制的话,用刚才的方法:
11/4=2……3
2/4=0……2
那么这个四进制数就是33
也就是说1111(2)->23(4)
换一个角度思考
100(2)=2^2=4,但四进制里面是没有4的(好比10进制里面没有十的个位数),应该进位为10
那么1011=1000+11(2)=20+3(4)=23 总之就是平方数立方数等有次方关系的可以直接换
还是不太明白,意思是所有不是二进制的进制化成某个K进制都要经过十进制吗?好负责,能不能再简单点,谢谢
追答二进
二进制化成四进制、八进制、二的N次方进制都可以用那个方法,
只有转换双方有乘方关系才有简便算法,其他的一般都要通过十进制作为中间转换变量。
1234(5)=1×5^3+2×5^2+3×5^1+4×5^0=194
把2进制数11111(2)化为十进制数
11111(2)=1×2^4+1×2^3+1×2^2+1×2^1+1×2^0=31
把89化为四进制、六进制数
89=1×4^3+1×4^2+2×4^1+1×4^0=(1121)4
89=2×6^2+2×6^1+5×6^0=(225)6
由上面的解题过程,相信你已经能看出来K进制和十进制的转化方法了。追问
为什么
89=1×4^3+1×4^2+2×4^1+1×4^0=(1121)4
89=2×6^2+2×6^1+5×6^0=(225)6
那第二问怎么算呀,就是把K进制的数转换成十进制,比如把2进制数11111(2)化为十进制数
追答利用出除法 除以二取余 电脑上说不清啊 你查一下书吧