gpt4 book ai didi

java - 如何将字符串从基数 32 解码为 BigInteger

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:43 24 4
gpt4 key购买 nike

我尝试了以下代码:

import java.math.BigInteger;
import org.apache.commons.codec.binary.Base32;
import org.junit.Test;

public class Sandbox
{
@Test
public void testSomething() {
String sInput = "GIYTINZUHAZTMNBX";

BigInteger bb = new BigInteger(new Base32().decode(sInput));

System.out.println("number = " + bb);
}
}

这是输出:

number = 237025977136523702055991

使用 this website to convert between base 32我得到的结果与实际输出不同。根据我从网站获得的信息,这是我期望看到的结果:

expected output = 2147483647

知道为什么会发生这种情况吗?

编辑:

请原谅我故意尝试转换 2^31-1,从而造成困惑。

使用我之前链接到的转换网站,我更改了输入:

String sInput = "GE4DE===";

预期输出:

number = 182

实际输出:

number = 3225650

最佳答案

您所做的事情是正确的...假设 Base32 字符串来自于调用调用获得的 Base32 编码字节数组 BigInteger.toByteArray()

BigInteger(byte[] val) 并不真正采用任意字节的数组。它采用 BigIntegerbyte[] 表示形式。此外,它假设最高有效字节位于 val[0] 中)。

关于java - 如何将字符串从基数 32 解码为 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11269861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com