【发布时间】:2016-01-10 18:14:43
【问题描述】:
我有一些字节整数操作。但我无法弄清楚问题所在。
首先我有一个十六进制数据,我将它保存为一个整数
public static final int hexData = 0xDFC10A;
我正在使用这个函数将它转换为字节数组:
public static byte[] hexToByteArray(int hexNum)
{
ArrayList<Byte> byteBuffer = new ArrayList<>();
while (true)
{
byteBuffer.add(0, (byte) (hexNum % 256));
hexNum = hexNum / 256;
if (hexNum == 0) break;
}
byte[] data = new byte[byteBuffer.size()];
for (int i=0;i<byteBuffer.size();i++){
data[i] = byteBuffer.get(i).byteValue();
}
return data;
}
我想再次将 3 字节数组转换为整数,我该怎么做? 或者您也可以建议其他转换函数,例如 hex-to-3-bytes-array 和 3-bytes-to-int 再次感谢您。
更新
在c#中有人使用下面的函数但在java中不起作用
public static int byte3ToInt(byte[] byte3){
int res = 0;
for (int i = 0; i < 3; i++)
{
res += res * 0xFF + byte3[i];
if (byte3[i] < 0x7F)
{
break;
}
}
return res;
}
【问题讨论】:
-
英语可能不是您的母语。请不要说“我希望你帮助我”,除非你是真心的。这听起来粗鲁和傲慢。让你下次知道!
-
谢谢指正,我不是这个意思。我会尽量不再使用@NiklasR