我想将数字从十六进制(基数16)转换为三元数(基数3),
一个简单的解决方案是转换每个数字,如hex-> decimal-> binary->三元,
这个问题有效率(=意味着更少的代码)吗?
答案 0 :(得分:1)
取决于“二元”是什么意思。如果你的意思是 - CPU的内部表示,那肯定是要走的路。在任何数字系统中将数字转换为字符串都涉及整数运算,并且使用数字的字符串表示来执行此操作非常麻烦。
如果你的意思是 - 二进制字符串,一个字符为“0”和“1”的字符串,你就错了。
无论如何,正确的算法将涉及:
答案 1 :(得分:1)
将基数为m的数字转换为基数n中的数字:
对于某些情况(例如在十六进制和整数之间进行转换),通过使用移位和掩码代替乘法,除法和模数,可以轻松优化计算。