好的,这已经一整天了,没有人回答。因此,尽管我缺乏这方面的知识,但我会尽力回答。经过大量的谷歌搜索,我发现了以下内容:
有没有做这种转换的库?
我没有发现任何允许这种类型的转换,我发现最好的是:https://codereview.stackexchange.com/questions/78514/all-in-one-number-base-converter
这家伙写了一些代码来在碱基之间进行转换,看起来相当不错,只是它不适用于虚构的碱基。-记住这件事,因为你仍然可以使用它-.
有没有办法在没有基数的情况下以 $2i$ 为底数来表示所有复数(具有整数系数)?
不,任何具有奇数虚部系数的复数都需要在点后使用一位数字(因为表示1i 的唯一方法是四分之一虚数中的10.2)。
欧式除法算法是唯一的转换算法吗?
我不确定欧几里得除法是否在这里有效,-不是简单的形式-。
但是,经过一番搜索,我发现了这个问题:
https://codegolf.stackexchange.com/questions/69112/output-quater-imaginary-base-numbers-in-binary
这是一个代码高尔夫问题,如果您不介意Javascript,您可以使用第一个答案中的代码,以及没有人可以理解的代码。
但是,代码背后的想法是您可以将复数的实部转换为基数-4,我们将其称为r。然后在它们之间交错 0 以将实部转换为基数 2i。
1-例如7 在基础-4 中是133,在基础2i 中是10303 这是
因为与2i 中奇数位置对应的幂是
-4 的相同幂,即 [1,-4,16,-32,.....]
至于虚部,可以将虚部系数除以2,然后转换为-4基数,然后插入基数2i数的奇数位置,得到虚数部分。这个想法是奇数 2i 幂是 [2i,-8i,16i,.....],然后将它们除以 2i(将复数系数除以 2)得到基数 -4 系数 [1, -4,8,.....]
2-例如要将7i 转换为2i 基数,首先将系数除以
2、得到3.5,即130.2 in base -4,如果你只是插入
这些数字进入你得到的基数2i 的奇数位置
103000.2 即7i。
最后,您只需将两个部分(虚数和实数)相加即可得到基数 2i 中的整个复数
例如7+7i in base 2i 等于:7 in base 2i 即 10303 - 来自 1-例如和7i 在基础2i 中,即103000.2 - 来自2-例如- 其结果是113303.2,这是2i 的基础7+7i 表示。
请记住,昨天是我第一次听说虚基数,所以我可能并不完全正确。