java - 加载一个大的正数 BigInteger

标签 java android biginteger uint uint64

我正在尝试从 .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/

相关文章:

Android 接收短信 Intent : Get Message Id or Thread Id

java - Android:总是在 Intent 中传递的额外内容中接收空对象

java - BigInteger 有上限吗?

用于检测带有可选句点的版本的 Java 正则表达式

java - Android前台服务onStartCommand不调用,仅onCreate调用

java - 将 MouseEvents 从一个 Java 文件链接到另一个 Java 文件

android - Settings.Secure.ANDROID_ID 在每台设备上始终相同

java - DocumentBuilder 线程安全吗?

c# - 在 .NET 中处理非常大的数字

java - 使用 BigInteger 的 Karatsuba 乘法