我有一个字节数组,
[102,100,51,52,48,48]
其中包含十六进制字符串表示:
" fd3400"
如果我将其转换为数字,则显示为16593920。
但是,当我使用下面的代码段转换它时
int iSec = ByteBuffer.wrap(bSec).order(ByteOrder.LITTLE_ENDIAN).getInt();
我得到结果:875783270。字节应该是LSB格式,但我似乎无法得到正确的值,如875783270!= 16593920.我有点困惑使用这些数据格式。
答案 0 :(得分:3)
字节数组包含字符串的字节表示。
在ASCII中:
您应该从字节数组转换为字符串,然后使用基数16(十六进制)解析该字符串。
String hex = new String(arr, "ASCII"); //fd3400
int number = Integer.valueOf(hex, 16).intValue(); //16593920