我正在尝试从 .NET 移植一段代码,该代码到处都使用 UInt64,我基本上成功地使用了 BigInteger,但不幸的是,我陷入了一些非常简单的事情,例如使用十六进制表中的值加载 BigInteger值。
在某些时候,我想加载一个带有正 0x990951BA的BigInteger,我看到的唯一方法是使用BigInteger b = BigInteger.valueOf(0x990951BA),这当然不起作用,因为Java 将参数视为长整型,使其为负值。
我怎样才能实现这个目标?
谢谢。
最佳答案
long
在 Java 中是 64 位,因此您应该能够使用它作为 UInt64
的直接替代品。要指定 long
文字,请将 l
附加到常量,以将其识别为 long
而不是 int
。
BigInteger b = BigInteger.valueOf(0x990951BAl);
对于太大甚至很长的值的后备方法是将其解析为文本。
BigInteger b = new BigInteger("990951BA", 16);
关于java - 加载一个大的正数 BigInteger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174106/