Как преобразовать шестнадцатеричную строку в шестнадцатеричное число
Я хочу преобразовать шестнадцатеричную строку (например: 0xAD4
) в шестнадцатеричное число, затем добавить 0x200
на этот номер и снова хотите напечатать этот номер в виде 0x
как строка
я попробовал для первого шага:
str(int(str(item[1][:-2]),16))
но значение, которое печатается, является десятичной строкой, а не строкой в шестнадцатеричном формате (в формате 0x) (я хочу напечатать окончательный результат в виде 0x
)
[:-2]
удалить последние 00 из этого числаitem[1]
содержит шестнадцатеричное число в форме0x
3 ответа
Решение
Попробуй это:
hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)
Если вам не нравится 0x
в начале замените последнюю строку на
print hex(new_int)[2:]
Использование int
функция со вторым параметром 16, чтобы преобразовать шестнадцатеричную строку в целое число. Наконец, используйте hex
функция, чтобы преобразовать его обратно в шестнадцатеричное число.
print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4
Вместо этого вы можете напрямую сделать
print hex(int("0xAD4", 16) + 0x200) # 0xcd4
Использовать строку формата
intNum = 123
print "0x%x"%(intNum)
или же hex
функция.
intNum = 123
print hex(intNum)