0xc5e94bf9
is a 32 bit number.
In hexadecimal representation one 'digit' represents 4 bits. Thus a 8-bit number ranges from 0x00
to 0xFF
. So 2 hex-digits, also called nibbles.
16 bit would be 0x0000
to 0xFFFF
And your case 32 bit: 0x00000000
to 0xFFFFFFFF
The link you found for signed integers states -2,147,483,648
to 2,147,483,647
. If you interprete this as unsigned, it would be 0
to 4,294,967,296
in decimal representation. Thus 3,320,400,889
is in the range.
Now to the error you get: That's a bug in TPM/J. It uses
Integer.parseInt( s.substring( 2 ), 16 );
to parse the input string. The parseInt()
-method does not work for hexadecimal numbers larger than 0x7FFFFFFF
.