簡體   English   中英

在Java中將十六進制字符串轉換為double

[英]Convert hexadecimal string to double in Java

我想將此十六進制字符串48985DDFAF27A0轉換為雙精度 結果應該是49.1903648

我試過

  1. Double.longBitsToDouble
  2. 使用parseInt(x, 16)解析十六進制字符串,然后使用intBitsToFloat

上述方法似乎都不起作用。

需要建議請

您必須將十六進制數字符串解析為 long。 這樣做之后,您可以使用Double.longBitsToDouble將其轉換為Double.longBitsToDouble 這是您的十六進制數的示例:

public class Converter {
public static void main(String[] args) {
    String hex = "48985DDFAF27A0";
    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);
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM