Java16进制转主机序
时间: 2023-08-31 22:05:14 浏览: 92
Java实现ModBus Poll端,读/写外连设备寄存器数据,COM3端口连接
Java中可以使用ByteOrder类的静态方法来指定字节顺序,在转换时可以使用ByteBuffer类。
示例代码:
```java
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class HexToHostOrder {
public static void main(String[] args) {
String hexStr = "12345678";
byte[] byteArray = hexStringToByteArray(hexStr);
ByteBuffer buffer = ByteBuffer.wrap(byteArray);
buffer.order(ByteOrder.LITTLE_ENDIAN); // 指定字节顺序为小端序
int result = buffer.getInt(); // 转换为主机序的int值
System.out.println(result);
}
// 将16进制字符串转为byte数组
public static byte[] hexStringToByteArray(String hexStr) {
byte[] byteArray = new byte[hexStr.length() / 2];
for (int i = 0; i < byteArray.length; i++) {
int index = i * 2;
int j = Integer.parseInt(hexStr.substring(index, index + 2), 16);
byteArray[i] = (byte) j;
}
return byteArray;
}
}
```
上述示例将16进制字符串"12345678"转为小端序的int值305419896。在转换时需要注意指定正确的字节顺序,否则得到的结果可能是错误的。
阅读全文