最近在做一个水厂的检测项目,4G设备向服务器发送socket请求,涉及到了整数和浮点数的传输,需要将字节数组还原成可读的数据,总结如下: 读取数据时,每4位数字是一个值,前2位是低字节,后2位是高字节,先读取高字节数,再读取低字节数
byte[] data = {-15, 71, 60, 109, 18, 51, 63, 95, 33, 15, 66, 81, 57, -32, 62, -125, -13, 37, 0, 0}; //offset:从哪位开始读起 private static float readFlowRate(int offset, byte[] data) { byte[] newData = new byte[4]; float flowRate = 0.0f; newData[0] = data[offset + 2]; newData[1] = data[offset + 3]; newData[2] = data[offset]; newData[3] = data[offset + 1]; ByteBuffer buf = ByteBuffer.allocateDirect(4); buf.put(newData); buf.rewind(); flowRate = buf.getFloat(); return flowRate; }