Преобразование строки из decimal в hex

Здрасте, господа! Нуждаюсь в следующей помощи: Работаю с SNMP протоколом для xPON технологии. Суть программы - парсинг и вывод всевозможных данных о коммутаторе вместо ввода множества команд в консоль. Парсинг проходит по OID'ам. OID представляет последовательность типа (1.3.6.1.4.1.35265.1.22.3.1.1.11.%s.8.%s), где %s - уникальные данные об устройстве (серийный номер, затухание и т.д.). Конкретно этот OID содержит инфу о серийных номерах на станционном оборудовании. Вопрос в следующем: как строку такого типа конвертировать в hex формат по типу 5A544547C8BD7F94 (серийник ONT)? И как дать программе понять, что %s - это данные об оборудовании? У меня есть метод, который из hex выведет десятичную последовательность, но вот как обратную конвертацию провернуть я не знаю. Будьте добры, помогите, кто имеет возможность и представление, как это сделать))

А вот и конвертер из hex в OID:

public String serialToDec(String dec)
    {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < dec.length(); i += 2)
        {
            String sub = dec.substring(i, i + 2);
            long num = Long.parseLong(sub, 16);
            builder.append(num).append(".");
        }

        String result = builder.toString();
        result = result.substring(0, result.length() - 1);
        System.out.println(result);
        return result;
    }

Ответы (2 шт):

Автор решения: Ivan Tropin

Для перевода из десятичной системы в hex - можно Integer.toHexString() использовать. Что касается вашего второго вопроса "И как дать программе понять, что %s - это данные об оборудовании?" - насколько я понимаю, позиция %s в строке фиксирована. Соответственно, можете сделать примерно следующее:

String s; //incoming string
String[] deviceData=s.split(".");

И затем обращаетесь к соответствующему элементу массива.

→ Ссылка
Автор решения: Barmaley

Я в свое время аналогичную задачу решал так:

private static final String HEX="0123456789ABCDEF";

/**
 * Convenience method to convert a byte array to a hex string.
 *
 * @param array the byte[] to convert
 * @return String the converted byte[]
 */
public static String bytesToHex(byte[] array) {
    if(array==null)
        return "";
    char[] val=new char[2 * array.length];
    for(int i=0; i < array.length; i++) {
        int b=array[i] & 0xff;
        val[2 * i]=HEX.charAt(b >>> 4);
        val[2 * i + 1]=HEX.charAt(b & 15);
    }
    return String.valueOf(val);
}

public static byte[] intToByteArray(int value) {
    return new byte[]
            {
                    (byte) (value >>> 24),
                    (byte) (value >>> 16),
                    (byte) (value >>> 8),
                    (byte) value
            };
}
→ Ссылка