Преобразование из шестнадцатеричного десятичного значения в строку

1

В моей программе я получаю строку в формате hexa. Я хочу преобразовать это в строку. Как это сделать?

Спасибо и с уважением. Парвати

  • 1
    преобразовать строку в строку? ты имеешь в виду инт?
  • 1
    отредактируйте ваш вопрос и добавьте пример: (1) полученную строку (в шестнадцатеричном формате) и (2) строку, которая показывает ожидаемый результат после преобразования.
Теги:

3 ответа

1
Лучший ответ

Используйте следующий код для преобразования шестнадцатеричного в строку

String hexadecimalnumber = "00000011";
    BigInteger big = new BigInteger(hexadecimalnumber);
    String requiredString = big.toString(16);
    System.out.println("...data..."+requiredString);

Спасибо Дипак

  • 0
    «00000011» выглядит подозрительно как строковое представление 8-битного двоичного файла, представляющего 3 (десятичное число). Или это должна быть 32-битная шестнадцатеричная строка, представляющая 17 (десятичное число). ;-)
0
String hex = "ff";
hex = Integer.toString(Integer.parseInt(hex, 16));
-1
class Test 
{
    private static int hextoint(char c) {
        if (c >= '0' && c <= '9') {
            return c - '0';
        }
        if (c >= 'a' && c <= 'f') {
            return c - 'a' + 10;
        }
        if (c >= 'A' && c <= 'F') {
            return c - 'A' + 10;
        }
        return -1;
    }

    private static String hexdec(String str) {
        int len = str.length();
        if(len % 2 != 0){
            return null;
        }
        byte[] buf = new byte[len/2];
        int size = 0;
        for (int i = 0; i < len; i += 2) {
            char c1 = str.charAt(i);
            char c2 = str.charAt(i + 1);
            int b = (hextoint(c1) << 4) + hextoint(c2);
            buf[size++] = (byte)b;
        }

        return new String(buf, 0, size);
    }

    public static void main(String[] args) 
    {
        String str = "616263";
        String out = hexdec(str);
        System.out.println(out);
    }
}
  • 0
    Не очень хорошая идея писать свои собственные, когда эта функциональность уже существует в библиотеках Java (см .: download.oracle.com/javase/1.5.0/docs/api/java/lang/… ) - и этот код не будет корректным работать с отрицательными шестнадцатеричными числами
  • 0
    привет, parseInt НЕ является hexdec. если вы расшифруете шестнадцатеричную строку, разделив ее на строки длиной 2 байта, а затем parseInt, это будет намного медленнее.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню