Как преобразовать шестнадцатеричное в ASCII-значения в Java? - PullRequest
1 голос
/ 26 апреля 2010

Спасибо за ваш ответ ... У меня есть 31 32 2E 30 31 33 6-байтовое шестнадцатеричное число. Я хочу преобразовать 31 32 2E 30 31 33 это шестнадцатеричное 6-байтовое число в число 12,013 ASCII в Java.

Ответы [ 3 ]

5 голосов
/ 26 апреля 2010

Как то так?

byte[] bytes = {0x31, 0x32, 0x2E, 0x30, 0x31, 0x33};
String result = new String(bytes, "ASCII");
System.out.println(result);
0 голосов
/ 26 апреля 2010

Предполагая, что ваши входные данные представляют собой массив строк, представляющих цифры в шестнадцатеричном формате, вы можете сделать следующее:

public static String convert(String[] hexDigits){
    byte[] bytes = new byte[hexDigits.length];

    for(int i=0;i<bytes.length;i++)
        bytes[i] = Integer.decode("0x"+hexDigits[i]).byteValue();

    String result;
    try {
        result = new String(bytes, "ASCII");
    } catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
    }
    return result;
}

Обратите внимание, что в коде предполагается, что цифры даны как действительные значения ASCII, без спецификатора радиуса.

0 голосов
/ 26 апреля 2010

Вероятно, не самый элегантный метод, но попробуйте это:

char[6] string = new char[6];
string[0] = 0x31;
string[1] = 0x32;
string[2] = 0x2E;
string[3] = 0x30;
string[4] = 0x31;
string[5] = 0x33;

String s = new String(string);

int result = Integer.parseInt(s);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...