如何通过移位来存储浮点字节数组

时间:2013-11-17 16:45:24

标签: java

我可以使用以下命令将int值存储在大小为4的字节数组中:

byte[] toByteArray(int value) {
        return new byte[] {
            (byte) (value >> 24),
            (byte) (value >> 16),
            (byte) (value >> 8),
            (byte) value};
    }

如何使用位移将浮点数存储在字节数组中?

2 个答案:

答案 0 :(得分:9)

您应该使用:Float.floatToIntBits(float val)来获取浮点数的原始表示形式,然后将返回的int转换为byte[]

要回读浮动,请使用Float.intBitsToFloat(int i)

答案 1 :(得分:4)

请记住float is 4 bytes。您可以使用ByteBuffer存储float并为您提供字节数组。

public byte[] toByteArray(float value) {    
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.putFloat(value);
    return buffer.array();
}

在内部,它使用Bits类,它与您使用toByteArray(int)方法执行的操作类似。