Я пытаюсь преобразовать 128-разрядное целое без знака, сохраненное как массив из 4 неподписанных ints для представления десятичной строки в C:
unsigned int src[] = { 0x12345678, 0x90abcdef, 0xfedcba90, 0x8765421 };
printf("%s", some_func(src)); // gives "53072739890371098123344"
(Приведенные выше примеры ввода и вывода являются полностью вымышленными, я не знаю, что будет делать этот ввод.)
Если бы я собирался шестнадцатеричный, двоичный или восьмеричный, это было бы простым вопросом о масках и сдвигах бит, чтобы очистить наименее значимые символы. Тем не менее, мне кажется, что мне нужно заняться базой 10. К сожалению, я не помню, как это сделать для нескольких int, и используемая система не поддерживает типы данных, превышающие 32 бита, поэтому использование 128-битного типа невозможно. Использование другого языка также отсутствует, и я предпочел бы избежать большой библиотеки номеров только для этой одной операции.