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

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