根据您正在做的工作,您可以将64位值和int视为32位值.大多数操作esp readInt / Long writeInt / Long work只要忽略符号就行.
你可以给出这些数字执行操作的一个例子,也许我们可以建议如何做同样的事情,而不必扩展类型.
例如, – ,, – ,*,==,!=,<<>您可以取代>>>>
它是/,%,>,> =,
long unsignedA =
long unsignedB =
boolean greater = unsignedA + Long.MIN_VALUE > unsignedB + Long.MIN_VALUE
编辑:为什么这样工作?部分原因是java没有溢出/下溢异常.
例如
byte unsignedA = 0;
unsignedA--;
// unsignedA == FF, is this -1 or 255? Java assumes the former but you assume the later
byte unsignedB = unsignedA * unsignedA;
// unsignedB is -1 * -1 = 1 or (byte) (255*255) = (byte) 65525 = 1.