我可以使用以下命令将int值存储在大小为4的字节数组中:
byte[] toByteArray(int value) {
return new byte[] {
(byte) (value >> 24),
(byte) (value >> 16),
(byte) (value >> 8),
(byte) value};
}
如何使用位移将浮点数存储在字节数组中?
答案 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)
方法执行的操作类似。