将整数转换为十六进制值,我只能在java中将其作为十六进制值存储在字节数组中

时间:2015-01-12 05:24:38

标签: integer hex

我想将整数转换为十六进制值,我只能将其存储在字节数组中作为十六进制值。

例如,         int i = 18254; 十六进制等效值是474E(使用Integer.toHexString)。 现在我想把这个474E存储在一个字节数组中         字节[0] =(字节)0X47         字节[1] =(字节)0x4E 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我只是存储整数和数组,并使用蒙版转换为十六进制并根据需要进行移位。

e.g。 int = i & 0x00ff中的最低字节,下一个最高= (i & 0xff00) >> 8

您可以使用这些相同的位操作来存储您请求的字节。

(i & 0xff00)获得int中第二低的字节。 >> 8将其右移8位,因此它现在存储在低8位中。 (i & 0xff0000)为您提供第3个字节(您必须向右移16位),依此类推。

这样:

lowerByte = intVal & 0x000000ff;
secondLowest = (intVal & 0x0000ff00) >> 8;
thirdLowest = (intVal & 0x00ff0000) >> 16;

如果您需要全部4个字节,则需要检查符号位的处理方式......