Скажите, у меня есть
1009732533765201
, и я хочу:
0x1009732533765201, что составляет
1155581383011619329
Вы можете сделать это вязыки программирования с такими строками, как это
int ('1009732533765201', 16)
, но я хочу чисто математический способ. Чтобы преобразовать 1009732533765201 в его base16 из 1155581383011619329
Я попытался: int ('1009732533765201', 16), но здесь используется строка, и для больших чисел она медленная, я ищу только математический угол.
Вот математический способ, которым я знаю, как это сделать: 0x1009732533765201 = 1155581383011619329
Вот способ Python сделать это: int ('1009732533765201', 16)
но яПервую математическую версию можно сделать только вручную. Как это можно сделать, преобразовав 0x1009732533765201 без использования строки для конкатенации '0x' в '1009732533765201' и не используя eval
. Есть ли способ взять 1009732533765201 и преобразовать его в тот же вывод, что и 0x1009732533765201, чтобы получитьего целое число без использования int ('1009732533765201', 16) моя цель - найти более быстрый подход
ОТВЕТ НА ПАРТИЙСКИЙ ВЫСТРЕЛ, вот результат его подхода, который является именно тем, что я искал, способсделать это без int ()
orig = 1009732533765201
num = orig
result = 0
i = 0
while num != 0:
result += (num % 10) * (16 ** i)
num //= 10
i += 1
print(orig, num, result, "%x" % (result))
1009732533765201 0 1155581383011619329 1009732533765201