Java - converting byte[] to int not giving result -
i have hexbinary of 4 bytes follows:
ffffffc4 it should return big following function gives -60:
public static int bytearraytoint(byte[] b) { return b[3] & 0xff | (b[2] & 0xff) << 8 | (b[1] & 0xff) << 16 | (b[0] & 0xff) << 24; } why doesn't work? doing wrong?
the primitive type int 32-bits long , significative bit sign. value ffffffc4 has msb set 1, represents negative number.
you can "something big" using long instead of int:
public static long bytearraytoint(byte[] b) { return (((long) b[3]) & 0xff) | (((long) b[2]) & 0xff) << 8 | (((long) b[1]) & 0xff) << 16 | (((long) b[0]) & 0xff) << 24; }
Comments
Post a Comment