如何在java中将ASCII转换为十六进制值

lak*_*hmi 5 java

如何在java中将ASCII转换为十六进制值.

例如:

ASCII:31 32 2E 30 31 33

十六进制:12.013

pol*_*nts 8

您没有将ASCII转换为十六进制值.您有char十六进制的值,并且您想将其转换为a String是我如何解释您的问题.

    String s = new String(new char[] {
        0x31, 0x32, 0x2E, 0x30, 0x31, 0x33
    });
    System.out.println(s); // prints "12.013"
Run Code Online (Sandbox Code Playgroud)

如果你给了字符串,并且想要将其打印char为十六进制,那么这是如何做到的:

    for (char ch : "12.013".toCharArray()) {
        System.out.print(Integer.toHexString(ch) + " ");
    } // prints "31 32 2e 30 31 33 "
Run Code Online (Sandbox Code Playgroud)

您还可以使用%H格式字符串:

    for (char ch : "12.013".toCharArray()) {
        System.out.format("%H ", ch);
    } // prints "31 32 2E 30 31 33 "
Run Code Online (Sandbox Code Playgroud)


Mic*_*yan 4

目前尚不完全清楚您在问什么,因为您的“十六进制”字符串实际上是十进制的。我相信您正在尝试获取表示 double 的 ASCII 字符串并以 double 的形式获取其值,在这种情况下使用Double.parseDouble应该足以满足您的需求。如果需要输出 double 值的十六进制字符串,则可以使用Double.toHexString。请注意,每当您调用原始包装类的解析函数之一时,您都需要捕获NumberFormatException 。

byte[] ascii = {(字节)0x31, (字节)0x32, (字节)0x2E, (字节)0x30, (字节)0x31, (字节)0x33};
字符串decimalstr = new String(ascii,"US-ASCII");
double val = Double.parseDouble(decimalstr);
String hexstr = Double.toHexString(val);