1

考虑一种情况,其中需要以下功能:

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()没有中间到十进制转换的情况下实现这样的功能?

谢谢!

4

1 回答 1

4

假设您正在计算机程序中寻找实用的解决方案,您不想转换为基数 10 作为中间值,而是转换为计算机的本机表示,其基数无关紧要。编写两个单独的函数,一个将字符串解析为整数,另一个将整数转换为字符串。

于 2012-06-12T21:21:59.603 回答