如何将浮点数转换为字节数组,反之亦然?
我正在尝试将a float
转换为原始类型byte[]
,反之亦然:
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[]
回a时float
,结果不过是垃圾。
但是,当我使用原始long
数据类型作为参数时,似乎相同的算法工作得很好。
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();
}
以上是 如何将浮点数转换为字节数组,反之亦然? 的全部内容, 来源链接: utcz.com/qa/398432.html