在 base-14 中给出 (3AC)。将其转换为 BASE-7。
一种简单的方法是先将 3AC 转换为 BASE-10,然后再转换为 BASE-7,得到 2105。
我只是想知道是否存在从 BASE-14 到 BASE-7 的直接转换方式?
正如其他人所说,没有简单的技术,因为 14 不是 7 的幂。
但是,您不需要通过 base-10。一种方法是编写执行 base-14 算术(特别是加法和乘法)的例程,然后使用它们依次处理每个 base-7 数字:将其乘以相关的 7 次幂,然后将其添加到累加器。
我找到了一种方法。
无需计算以 10 为底,然后以 7 为底。可以使用此公式完成!如果 a no X 在基数 14 中表示为 X = an a(n-1) a(n-2) .... a(0)
然后在base 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)th term/7)%7
(将更进一步,因为以 14 为底的数字将需要以 7 为底的更多数字)。
逻辑很简单,仅基于碱基的属性,并考虑到 7 是 14 的一半这一事实。否则这将是一项乏味的任务。
例如。这里给出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!
不,没有一种简单的方法可以随心所欲地做,因为 14 不是 7 的幂。
对于这样的事情,我所知道的唯一技巧(例如很容易从十六进制变为二进制)要求一个基础是另一个基础的力量。
http://mathforum.org/library/drmath/view/55783.html给出了一个合理的明确答案。简而言之,从我所知道的方法来看,它有点痛苦。