преобразовать строку в int

У меня есть строка

s = "text"

я ее преобразовываю в hex

":".join("{:02x}".format(ord(c)) for c in s)

получаю строку

74:65:78:74

Как я могу преобразовать этот hex в десятичные числа? т.е. ожидаю получить на выходе

116:101:120:116

Ответы (3 шт):

Автор решения: nomnoms12

Конструктор класса int позволяет передать вторым аргументом (base) основание системы счисления. Вы можете воспользоваться этим, чтобы получить объект числа, а затем его строковое представление в десятичной системе.

Пример:

text = '74:65:78:74'

print(':'.join(str(int(h, 16)) for h in text.split(':')))

stdout:

116:101:120:116
→ Ссылка
Автор решения: Tehnorobot

Можно написать короче, то есть использовать hex:

s = 'text'

num = ":".join(str(int(hex(ord(c)), 16)) for c in s)

print(num)

Вывод:

116:101:120:116
→ Ссылка
Автор решения: Кирилл Малышев
s = 'text'
res = ':'.join(map(str, str.encode(s)))
print(res)
→ Ссылка