Как преобразовать шестнадцатеричную строку в шестнадцатеричный номер

Я хочу преобразовать шестнадцатеричную строку (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)