java - 如何将 float 转换为字节数组,反之亦然?

标签 java

我正在尝试将 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)
    };
}

最佳答案

改用这些。

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();
}

关于java - 如何将 float 转换为字节数组,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14619653/

相关文章:

java - 设计模式 : Factory vs Factory method vs Abstract Factory

java - Spring4.0.3中AuthenticationException.getAuthentication()的替换是什么

java - Android中如何管理数据

java - Java 构造函数内的私有(private)变量

java - 分析 Java 服务器并解释火焰图

java - mKeyStore?.getKey ("default_key", null) 在 Kotlin 中获取 null

java - 从 JAVA 在 OpenDJ (LDAP) 中创建新的对象类

java - 查询迭代时出现 org.hibernate.ObjectNotFoundException

java - Spring Web XML 不尊重 Java11 中的 XmlRootElement

java - 通过反射传递 List<Integer>