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

convert an integer into a hex value which I can store in a byte array as hex value only in java

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

例如, 诠释我= 18254; 十六进制等价物是 474E (使用 Integer.toHexString )。 现在我想将这个 474E 存储在一个字节数组中 字节[0]=(字节)0x47 字节[1]=(字节)0x4E 我该怎么做?

我只存储整数和一个数组,然后根据需要使用掩码和移位转换为十六进制。

例如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 个字节,则需要检查符号位的处理方式...