Ответ 1
Да, вы можете использовать GMP для этого. Функция, которую вы ищете, mpn_get_str
:
http://gmplib.org/manual/Low_002dlevel-Functions.html#Low_002dlevel-Functions
Теперь единственной проблемой является размер mp_limb_t
. Это либо 32-разрядное целое число, либо 64-разрядное целое число в зависимости от платформы.
- Если это 32-разрядное целое число, вы можете вызвать функцию непосредственно в своем массиве из 32-разрядных целых чисел. (если совпадают символы endian)
- Если это 64-разрядное целое число, вы можете использовать его только с помощью простого указателя. (в зависимости от выравнивания и конечности) В противном случае вам придется скопировать массив в массив из 64-разрядных целых чисел, прежде чем вы сможете вызвать
mpn_get_str
.
В качестве альтернативы, может быть проще использовать класс mpz
integer. Import ваш целочисленный массив в большое целое число, затем print он возвращается в базу 10.