我需要为我的传感器板读取串行端口,我使用这个 example读取数据到来。 但令我惊讶的是控制台终端上的输出数据是这样的
Wÿðÿ8Ã?íÈÓÿ
因为我使用这个 System.out.print(new String(buffer,0,len));
这种方法只是在每次接收数据包时打印数据。
但是当我将这种方法用于六位数字时,输出将在接收任何数据之前写入零!!
这个方法
byte[] arr = { 0x00, 0x01 };
ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default
short num = wrapped.getShort();
String f=String.valueOf(num);
System.out.print(f);
那么如何处理这个问题,将传入的字节转换为六进制的可读数据!!!
最佳答案
试试这个:
final byte[] arr = new byte[] { 0x00, 0x01 }; // or whatever your byte array is
final String asHexStr = DatatypeConverter.printHexBinary(arr)
System.out.println(asHexStr);
关于java - 如何将从串口接收到的字节转换为十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004153/