This is what I see in java, and it puzzles me.
Long.toHexString(0xFFFFFFFF) returns ffffffffffffffff
Long.toHexString(0xFFFFFFFF)
ffffffffffffffff
Similarly, 0xFFFFFFFF
0xFFFFFFFF
Of course, Long in java is 64-bits long! 0xFFFFFFFF means -1 as an int, when written in 64 bits, it's ffffffffffffffff.
Long
-1
int
However, if the number were unsigned, the string would also be ffffffff [but there's no unsigned in java].
ffffffff
unsigned