преобразование string type в hex type
требуется помощь, у меня есть строка вида 0x9daffbf...
она ранее распознавалась как hex, то есть кавычки ей не требовались, суть моего скрипта в том, что генерируется часть hex строки после 0х, но на выходе получаю string. как преобразовать в hex, чтобы данная строка спокойно работал с методами для hex
z1 = '0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'
print(int(z1, 16))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Непонятна суть проблемы. Всё прекрасно работает и с 0x впереди и без него:
z1 = '0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'
z2 = int(z1, 16)
print(z2)
print(hex(z2))
print(hex(z2) == z1)
Вывод:
71324054358934732119009127994312035692819413935602478704025180570346368417364
0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54
True
Без 0x впереди:
z1 = '9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54'
z2 = int(z1, 16)
print(z2)
print(hex(z2))
print(hex(z2) == '0x'+z1)
Вывод:
71324054358934732119009127994312035692819413935602478704025180570346368417364
0x9daffbf33384ebbc40752b97d84cc423e81de251030cb7979e151e4377063e54
True
И нет никакого "hex type", hex() просто делает строку с 16-ричным представлением числа и 0x перед ней.