考虑一种情况,其中需要以下功能:
convert(val1, base1, base2)
它将数字 ( val1
) 从base1
数字系统转换为base2
数字系统。在这个函数中,所有参数都是字符串,例如
convert("34", "012345", "01234567890ABCDEF")
调用以转换 34 6 -> X 16。
当我开始考虑实现时,很明显将具有较大基数的数字转换为较小的数字需要为较大基数的数字定义除法运算,例如 12 10 -> X 2 = 12 / 2 | 6 / 2 | 3 / 2 | 1 / 2 | = 1100 2。
接下来是关于进行两步转换 X b1 -> X 10 -> X b2。这肯定会更容易实现,但是伙计们,你能确认我在前面的结论中没有错吗,或者有没有一种明确的方法可以在convert()
没有中间到十进制转换的情况下实现这样的功能?
谢谢!