java - 如何将字节数组转换为 double 组并返回?

标签 java double arrays

为了将字节数组转换为 double ,我发现了这个:

//convert 8 byte array to double
int start=0;//???
int i = 0;
    int len = 8;
    int cnt = 0;
    byte[] tmp = new byte[len];
    for (i = start; i < (start + len); i++) {
        tmp[cnt] = arr[i];
        //System.out.println(java.lang.Byte.toString(arr[i]) + " " + i);
        cnt++;
    }
    long accum = 0;
    i = 0;
    for ( int shiftBy = 0; shiftBy < 64; shiftBy += 8 ) {
        accum |= ( (long)( tmp[i] & 0xff ) ) << shiftBy;
        i++;
    }

        return Double.longBitsToDouble(accum);

但是我找不到任何可以将 double 转换为字节数组的东西。

最佳答案

或者更简单,

import java.nio.ByteBuffer;

public static byte[] toByteArray(double value) {
    byte[] bytes = new byte[8];
    ByteBuffer.wrap(bytes).putDouble(value);
    return bytes;
}

public static double toDouble(byte[] bytes) {
    return ByteBuffer.wrap(bytes).getDouble();
}

关于java - 如何将字节数组转换为 double 组并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58507425/

相关文章:

java - 程序的 MySQL boolean 输入未按预期工作

java - Vigenère密码实现

ios - 如何将 NSTimeInterval 转换为秒数(对于 backgroundTimeRemaining)

android - onItemClick 获取数组上项目的 ID 或名称

java - 如何使用 java.util.logging 对齐日志消息

java - Axis2 城墙 : No user value in the rampart configuratio

c - 如何将 double 向下舍入到 C 中最接近的较小整数?

c - 只打印 double 的小数位

c++ - 静态 const 变量的 getter 来初始化二维数组

Javascript 无法推送到函数内部的全局数组