1

我想将 base16 字符串转换为 base32 字符串。例如,如果我有一个 base-16 字符串——“000000000288”,现在我想将其转换为 base-32 对应项(“K-8”)。

有一个网站可以做到:

http://www.unitconversion.org/unit_converter/numbers.html

4

2 回答 2

2

我认为你可以这样做:

int number = Integer.parseInt("000000000288", 16);
String base32 = Integer.toString(number, 32);

编辑:对不起,我忘了将基数参数添加到第一行。我现在已经改变了。

于 2012-07-09T11:39:36.547 回答
1

我发现 java 的BigInteger是所有位操作中最好的。在其广泛的用途中(主要用于存储大量数字,直到您的内存堆栈可以允许以及支持的广泛的操作),您确实可以选择从 2 到 36 的基本转换

示例代码:

BigInteger num=new BigInteger("000000000288",16);     //Store as Hexa

//Display the result using BigInteger.toString(radix)
System.out.println("Result = "+num.toString(32));    //Showing result in 32 base

当然,如果您要处理具有小数部分的数字,则必须使用 Magiccode 的方法Integer.toString(radix)。或者,如果您的数字大于int可以存储的数字,我建议您为小数部分运行自己的基本转换函数。

于 2017-02-17T18:32:26.023 回答