Как получить шестнадцатеричное значение из десятичного целого числа в Java? - PullRequest
13 голосов
/ 10 марта 2011

Я не знаю, как сгенерировать шестнадцатеричный символ "0x83" из целочисленного значения в Java.

Мне нужно значение «0x83» для представления буквы в кириллице (эта буква: ѓ ), чтобы отправить ее (письмо) на мой принтер. При преобразовании 131 (0x83 в десятичном виде) в гекс с моим конвертером (ниже) я получаю три числа: 0x31, 0x33 и 0x31.

public String toHex(String arg) {
    return String.format("%x", new BigInteger(arg.getBytes()));
}

Мне нужно получить 0x83 из этого преобразования.

Ответы [ 6 ]

40 голосов
/ 10 марта 2011

Если вы пытаетесь преобразовать целое число 131 в шестнадцатеричную строку, вы можете попробовать

Integer.toHexString( 131 )

Она вернет "83" в виде строки.

12 голосов
/ 10 марта 2011

Вот один пример:

String str = Integer.toHexString(131);
System.out.println(str);
2 голосов
/ 13 апреля 2011
String cyrillic = Character.toString((char)0x83)
0 голосов
/ 23 сентября 2013

Две возможности: для вашего принтера требуется 0x83 в байтах или в виде строки / символа

Отправить как байт:

int Cyrillic_int = 131; 
byte Cyrillic = (byte) Cyrillic_int;

Или отправить строковое представление 0x83:

int Cyrillic_int = 131;
String Cyrillic = Integer.toHexString(131);
0 голосов
/ 10 марта 2011

Не вижу проблемы при конвертации:

System.out.println(Integer.toHexString(131));

возвращает 83.

0 голосов
/ 10 марта 2011

Вы пробовали проверить Java Integer API . Вот пара примеров :

...