преобразовать строку в 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)