Reputation: 5299
I want to convert a hex string (ex: 0xAD4
) to hex number, then to add 0x200
to that number and again want to print that number in form of 0x
as a string.
i tried for the first step:
str(int(str(item[1][:-2]),16))
but the value that is getting printed is a decimal string not a hex formatted string (in 0x format) ( i want to print the final result in form of 0x
)
[:-2]
to remove the last 00 from that number item[1]
is containing hex number in form of 0x
Upvotes: 60
Views: 324131
Reputation: 4521
Use format string
intNum = 123
print "0x%x"%(intNum)
or hex
function.
intNum = 123
print hex(intNum)
Upvotes: 0
Reputation: 6227
Try this:
hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)
If you don't like the 0x
in the beginning, replace the last line with
print hex(new_int)[2:]
Upvotes: 118
Reputation: 239653
Use int
function with second parameter 16, to convert a hex string to an integer. Finally, use hex
function to convert it back to a hexadecimal number.
print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4
Instead you could directly do
print hex(int("0xAD4", 16) + 0x200) # 0xcd4
Upvotes: 20