У меня есть шестнадцатеричный массив, который я хочу преобразовать в десятичный, выполнить операцию модуля, а затем преобразовать его обратно в шестнадцатеричный.
int main()
{
char num[] = {0x02,0x03,0x04};
long n = strtol(num, NULL, 16);
printf("n=%ld\n", n);
}
Я получаю "0" здесь, в то время как я ожидаю "262914".
EDIT:
Я знаю, что установка char num[] = "0x040302"
даст мне ожидаемый результат, но он должен быть в пределах {}, как {0x02,0x03,0x04}