String hexstr = "0x12AB450912AB450912AB450912AB450912AB4509";
У меня есть строка длиной 40 байт.
Мне нужно преобразовать вышеуказанную строку в восьмеричное (до 20 байт)
char *endp;
strtoul(hexstr , &endp, 8);
Чтобы использовать вышеупомянутую функцию, она работает долго, т.е. для 8 байтов.
Но моя строка 40 байтов.
Может ли какой-нибудь орган сказать мне, как преобразовать в восьмеричное и сохранить обратно в строку?
функция возвращает беззнаковое длинное целое, поэтому максимальный возврат 8
байт, при условии, что это не сходит с ума, пытаясь преобразовать 40
строка байтов. нет стандартного целочисленного типа 40
байт. Вы можете сделать это путем преобразования цифр в двоичные и чтения каждые 3 бита, чтобы получить восьмеричную версию этого числа
Других решений пока нет …