将整数转换为十六进制值,我只能将其作为十六进制值存储在字节数组中 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 个字节,则需要检查符号位的处理方式...
我想将整数转换为十六进制值,我可以将其仅作为十六进制值存储在字节数组中。
例如, 诠释我= 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 个字节,则需要检查符号位的处理方式...