11

首先我要问:
有没有人知道 Java 的当前实现 128b UINT?

我需要一些东西来保持自然的基本价值观。即:一个巨大的柜台。
我知道 BigIntegers,它是缓慢且不可变的。128b UINT 是有道理的......

我正在考虑使用一对原始的 long 来实现一个 OWORD。

溢出会抛出异常而不是 Wraparound。

我应该寻找哪些示例源代码/博客来实现此类的工作?

4

3 回答 3

3

我会使用 32 位整数作为表示,因为您需要更大的类型(long)来获得进位、溢出检测和乘法的额外精度。将 32 位整数视为一个数字并应用小学的算法。

于 2009-07-08T10:28:27.793 回答
2

不要告诉我你打算有128个静态setter和getter,每个bit一个???我肯定会选择 setBit(int index, boolean value) 和 getBit(int index) 作为实例方法。

你需要更多的东西:一个 toString() 方法,这样你就可以获得人类可读的表示(在某些时候你会想要打印数字,我想)。

请记住,java 中的所有序数类型都是有符号的(char 除外),因此如果您打算使用两个 long,请始终记住,较低的部分可能会导致检测溢出等问题......无论如何,您将有一个 127 位的数字,除非因为较低的部分将被视为 63 位无符号数。

于 2009-07-08T10:33:49.450 回答
-2

为什么不使用 BigInteger?

于 2009-07-08T09:03:31.443 回答