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