От большого целого числа ZZ (как объявлено в NTL) до шестнадцатеричного

В настоящее время я использую NTL для обработки больших целых чисел. Большие целые числа в этой библиотеке объявлены как ZZ. Я хотел бы перейти от числа ZZ к шестнадцатеричному. Однако NTL не поддерживает преобразование из ZZ в шестнадцатеричные числа, как я проверял.

Итак, мой вопрос, как я могу перейти от ZZ (или, возможно, строки, которые представляют большие десятичные числа) в шестнадцатеричные формы? Я предпочитаю, если можно использовать возможности этой библиотеки, чтобы перейти прямо в гекс из ZZ, если кто-то может помочь

0

Решение

Шаг 1: Большое число xx изначально принимается как строка s

Шаг 2: Скажем, строка s имеет длину l, тогда s = s [0] s [1] … s [l-1]. Мы читаем каждый символ s, начиная с позиции 0, и каждый раз преобразуем эту цифру в целочисленную переменную цифру, используя int digit = atoi (ts.c_str ()); Затем мы используем значение рекурсивного отношения = 10 * значение + цифра, где значение объявляется как ZZ и инициализируется равным 0. После перебора всех цифр мы передаем строку в значение ZZ

Шаг 3: Теперь, чтобы преобразовать в шестнадцатеричную форму, используя NTL, мы можем вычислить по модулю 16 чисел ZZ. Итак, начиная со значения% 2 и затем вычисляя (значение-значение% 16) / 16 и продолжая таким образом, мы получаем шестнадцатеричную форму.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]