直接将BASE-14转换为BASE-7

时间:2012-06-10 17:22:44

标签: algorithm math radix

给予(3AC)基数为14。将其转换为BASE-7。

一种简单的方法是将第一个3AC转换为BASE-10&然后到BASE-7,结果是2105。

我只是想知道是否存在从BASE-14到BASe-7的任何直接转换方式?

4 个答案:

答案 0 :(得分:3)

正如其他人所说,没有简单的技巧,因为14不是7的力量。

但是,您不需要通过base-10。一种方法是编写执行base-14算术(特别是加法和乘法)的例程,然后使用它们依次处理每个base-7数字:乘以相关的7次幂,然后将其添加到累加器。

答案 1 :(得分:2)

我找到了一种方法。

无需计算基数10,然后计算基数7.可以使用此公式进行计算! 如果没有X在基数14中表示为 X = a(n-1)a(n-2)...... a(0)

然后在基数7中我们可以将其写为

X = ..... RQP

其中
P =(2 ^ 0)A(0)%7;
q =((2 ^ 1)a(1)+ p / 7)%7
r =((2 ^ 2)a(2)+ q / 7)%7

..........
第n项=((2 ^ n)a(n)+(n-1)项/ 7)%7
(将更进一步,因为基数14中的数字将需要基数7中的更多数字)。

逻辑很简单,只是基于基础的属性,并考虑到7是14的一半这一事实。否则这将是一项乏味的任务。

EG。这里给出了3AC C = 12;
所以最后一位是(2 ^ 0 * 12)%7 = 5
A = 10
下一个数字是(2 ^ 1 * 10 + 12/7)%7 =(20 + 1)%7 = 21%7 = 0
接下来是3;
下一个数字是(2 ^ 2 * 3 + 21/7)%7 =(12 + 3)%7 = 15%7 = 1
接下来什么都不是(0);
下一个数字是(2 ^ 3 * 0 + 15/7)%7 =(0 + 2)%7 = 2%7 = 2

因此,在基数7中,数字将为2105.这种方法可能看起来令人困惑和困难,但通过一些练习,它可以非常方便地解决类似的问题!此外,即使数字很长,如287AC23B362,我们也不必不必要地找到基数10,它可能至少消耗一段时间,并直接计算基数7!

答案 2 :(得分:1)

不,没有一个简单的方法可以按照你的意愿去做,因为14不是7的力量。

我所知道的这样的事情(很容易从十六进制到二进制)需要一个基础是另一个基础的力量。

答案 3 :(得分:0)

http://mathforum.org/library/drmath/view/55783.html给出了一个合理的明确答案。简而言之,从我所知的方法来看,这有点痛苦。