如何实现8个字节的字符串转成双精度浮点型数据。
下图中的“C05B204151ACB340”为数据源,转成浮点型结果为5036.317,请问如何实现。
如何实现8个字节的字符串转成双精度浮点型数据。
下图中的“C05B204151ACB340”为数据源,转成浮点型结果为5036.317,请问如何实现。
先参考我这个!
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
/**
* @author caozhen
* @ClassName Teest
* @description: TODO
* @date 2024年01月24日
* @version: 1.0
*/
public class Teest {
public static void main(String[] args) {
String hex = "C05B204151ACB340";
double value = hexToDouble(hex);
System.out.println(value); // 输出:5036.317
}
public static double hexToDouble(String hex) {
byte[] bytes = hexStringToByteArray(hex);
return ByteBuffer.wrap(bytes).order(ByteOrder.LITTLE_ENDIAN).getDouble();
}
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
}