如何将字符串中包含的数字从任何基数转换为任何其他基数?
基础可以是任何东西,即:2,16,10,4,8,9。
我希望用户输入基数。用户将输入输出基数(要转换的基数)。用户将输入他想要转换的号码。
预想: 我将输入基数和输出基数保存在变量中。然后我将保存他输入的数字(因为他可以输入任何类型的数字(十六进制,二进制,基数为5 ..)。
我只想弄清楚如何将该字符串转换为数字,以便将其转换为输出库。
有什么想法吗?
答案 0 :(得分:3)
将数字n更改为基数b的通用算法类似于:
i = 0
while(n != 0)
answer[i] = n mod b
n /= b
i++
(请注意,答案[0]代表答案的最低位数。)这有意义吗?你在实现这个伪代码的哪一部分时遇到了麻烦?
答案 1 :(得分:1)
要将字符串转换为整数,您需要查看ASCII table。
遍历你的字符串中的每个字符,直到你到达结尾,并根据字符是什么以及它在哪个范围内:'0'到'9','a'到'f','A'到'F',你需要在其范围中减去底部字符的值并添加任何适当的数量。然后将其添加到累加器值,您应该设置为go。我想你还需要检查任何暗示该值所在的值的值(例如,我希望十六进制值的前缀为“0x”)。
例如,如果你看到'1',你需要减去'0'。如果你看到'a',你需要减去'a'并添加0x0a。