byte[] response = new byte[]{-39, 118, -98, 60};
// Получаем коефециент
int asInt = (response[0] & 0xFF)
| ((response[1] & 0xFF) << 8)
| ((response[2] & 0xFF) << 16)
| ((response[3] & 0xFF) << 24);
float asFloat = Float.intBitsToFloat(asInt);
На выходе получаю: 0.01934378
byte[] b = ByteBuffer.allocate(4).putFloat(asFloat).array();
Но на выходе я получаю в обратном порядке [60, -98, 118, -39]
byte[] gf = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putFloat(asFloat).array();
System.out.println("Значение обратно" + Arrays.toString(gf));
И все нормально работает ! int asInt = Float.floatToIntBits(asFloat);
byte data0 = (byte)asInt;
byte data1 = (byte)(asInt >> 8);
byte data2 = (byte)(asInt >> 16);
byte data3 = (byte)(asInt >> 24);