[英]How to store float in a Byte array by shifting bits
我可以使用以下方式將int值存儲在大小為4的字節數組中:
byte[] toByteArray(int value) {
return new byte[] {
(byte) (value >> 24),
(byte) (value >> 16),
(byte) (value >> 8),
(byte) value};
}
如何使用移位將浮點數存儲在字節數組中?
您應該使用: Float.floatToIntBits(float val)
獲取Float.floatToIntBits(float val)
的原始表示,然后將返回的int
轉換為byte[]
。
要讀回浮動,請使用Float.intBitsToFloat(int i)
請記住, float
是4個字節 。 您可以使用ByteBuffer
來存儲float
並為您提供字節數組。
public byte[] toByteArray(float value) {
ByteBuffer buffer = ByteBuffer.allocate(4);
buffer.putFloat(value);
return buffer.array();
}
在內部,它使用Bits
類,該類的行為類似於您對toByteArray(int)
方法所做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.