...
This compliant solution assumes that the values being read are 32-bit unsigned integers. It reads an unsigned integer value into a long
variable using the readInt()
method. The readInt()
method assumes signed values and returns a signed Java int
; the return value is converted to a long
with sign extension. The code uses a logical-an &
operation to mask off the upper 32-bits of the long; this produces a value in the range of a 32-bit unsigned integer, as intended. The mask size should be chosen to match the size of the unsigned integer values being read.
...