简体   繁体   English

在Java中将十六进制数字字符串转换为双精度数字

[英]convert hexadecimal number string to double-precision number in java

how can we convert hexadecimal number string to double-precision number in java ? 如何在Java中将十六进制数字字符串转换为双精度数字?

in matlab it's simple : 在matlab中很简单:

>> hex2num('c0399999a0000000')

ans =

  -25.6000

but could I do the same things in java also ? 但是我也可以在java中做同样的事情吗?

I tried parseInt() but this number is not integer. 我试过parseInt(),但是这个数字不是整数。

I think you want Double.longBitsToDouble , like this: 我认为您想要Double.longBitsToDouble ,像这样:

public class Test {
    public static void main(String[] args) {
        String hex = "c0399999a0000000";
        long longHex = parseUnsignedHex(hex);
        double d = Double.longBitsToDouble(longHex);
        System.out.println(d);
    }

    public static long parseUnsignedHex(String text) {
        if (text.length() == 16) {
            return (parseUnsignedHex(text.substring(0, 1)) << 60)
                    | parseUnsignedHex(text.substring(1));
        }
        return Long.parseLong(text, 16);
    }
}

(The fact that long is signed in Java makes this more awkward than you'd really want, but hey...) (Java中使用long签名的事实使此操作比您真正想要的更加尴尬,但是嘿...)

首先加长,然后调用longBitsToDouble

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将Java String十六进制数转换为int十六进制数 - Convert Java String hexadecimal number to int hexadecimal number 在Java中将十六进制字符串转换为double - Convert hexadecimal string to double in Java 如何将字符串中的大十进制数转换为 Java 中的十六进制数? - How to convert a big decimal number in a String into Hexadecimal in Java? 如何将Java double转换为byte [],如何将byte []转换为double(IEEE 754双精度二进制浮点格式) - How to convert Java double to byte[], and byte[] to double (IEEE 754 double-precision binary floating-point format) 将字符串数字转换为Double,然后在Java中更正格式 - Convert String Number to Double and then correct format in Java 在Java中,有没有更好的方法可以将数字转换为具有十进制精度的填充字符串? - Is there a better way to convert a number to a padded string in Java with a variable decimal precision? 在Java中将十六进制数转换为十进制(Android) - Convert Hexadecimal number to decimal in Java (Android) 数的双精度 - Double precision of a number 将十六进制数转换为二进制 - convert hexadecimal number to binary 在Java中将十进制数字转换为十六进制字符串失败 - Failed on converting a decimal number to a hexadecimal string in Java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM