Java字符串转换为二进制

时间:2015-01-16 18:56:44

标签: java converter

我需要在Java中编写一个转换器,它要求用户输入 sourceAlphabet targetAlphabet )。然后代码应该提供一个将 sourceAlphabet 转换为 targetAlphabet 的答案。

字母应以下列形式给出:

- " 0123456789" (基数10),

- " ABCDEFGHIJKLMNOPQRSTUVWXYZ" (字母),

- " 0123456789ABCDEF" (十六进制)等。

每个字母值都是一个唯一的ASCII字符。

以下是我从代码中寻找的一些示例输入和答案:

convert("129","0123456789","01") === "10000001"
convert("FF","0123456789ABCDEF","0123456789") === "255"
convert("svip","abcdefghijklmnopqrstuvwxyz","0123456789ABCDEF") === "50C23"

非常感谢让我开始解决这个问题的任何帮助。

1 个答案:

答案 0 :(得分:1)

作为起点,创建一个从十进制转换为十六进制的函数。

帮助您完成此操作的最佳工具是模运算符(x%y)和除法运算符(x / y)。 Modulo(或mod)给你剩余部分,所以如果你想象有一个像24这样的数字,24%16 = 8,而24/16 = 1.请注意,如果我有31%16,我会得到15。

使用这些工具,您可以对输入小数进行操作,并通过数字的基数重复修改以获得余数,然后将小数等于自身除以基数。

例如。

第1步。 十进制:31 字符串:"" 基数:16

31%16 = 15 31/16 = 1

第2步 十进制:1 字符串:" E" 基数:16

1%16 = 1 1/16 = 1

第3步 十进制:0 字符串:" 1E" 基数:16

希望有所帮助。