我正在尝试将一个 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[]
转换回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)
};
}
f
吗? - Thai Tranchar* floatAsByte = (char*)&myFloat;
- Ryan Amos