我正在将一些 C++ 代码移植到 Java 代码中。
java中没有可以容纳64位的无符号数据类型。
我有一个哈希码,它存储在 Java 的long
数据类型中(当然是签名的)。
long vp = hashcode / 38; // hashcode is of type 'long'
因为这里的 38 大于 2,所以得到的数字可以安全地用于 java 中的任何其他算术。
问题是如果“哈希码”中的有符号位设置为 1 会怎样。我不想在变量 vp 中得到负值。我想要一个正值,就好像数据类型是无符号的一样。
PS:由于性能问题,我不想为此目的使用 Biginteger。