如何将float转换为字节数组,反之亦然? [英] How to convert a float into a byte array and vice versa?
本文介绍了如何将float转换为字节数组,反之亦然?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将 float
转换为原始 byte []
,反之亦然:
I am trying to convert a float
into a primitive byte[]
and vice versa:
public byte[] floatToByteArray(final float value)
{
return new byte[]
{
(byte) (value >> 56),
(byte) (value >> 48),
(byte) (value >> 40),
(byte) (value >> 32),
(byte) (value >> 24),
(byte) (value >> 16),
(byte) (value >> 8),
(byte) (value)
};
}
奇怪的是,当我尝试转移新分配的 byte []
返回 float
,结果只不过是垃圾。
Oddly enough, when I try to shift the newly allocated byte[]
back into a float
, the result is nothing but rubbish.
但是,当我使用原始 long
数据类型作为参数时,似乎同样的算法工作正常。
However, it would appear as if the same algorithm works just fine when I use the primitive long
data type as argument instead.
public byte[] longToByteArray(final long value)
{
return new byte[]
{
(byte) (value >> 56),
(byte) (value >> 48),
(byte) (value >> 40),
(byte) (value >> 32),
(byte) (value >> 24),
(byte) (value >> 16),
(byte) (value >> 8),
(byte) (value)
};
}
推荐答案
请改用它们。
public static byte [] long2ByteArray (long value)
{
return ByteBuffer.allocate(8).putLong(value).array();
}
public static byte [] float2ByteArray (float value)
{
return ByteBuffer.allocate(4).putFloat(value).array();
}
这篇关于如何将float转换为字节数组,反之亦然?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文