How to get hex string from signed integer

This will do the trick:

>>> print(hex (-1 & 0xffffffff))
0xffffffff

or, a variant that always returns fixed size (there may well be a better way to do this):

>>> def hex3(n):
...     return "0x%s"%("00000000%s"%(hex(n&0xffffffff)[2:-1]))[-8:]
...
>>> print hex3(-1)
0xffffffff
>>> print hex3(17)
0x00000011

Or, avoiding the hex() altogether, thanks to Ignacio and bobince:

def hex2(n):
    return "0x%x"%(n&0xffffffff)

def hex3(n):
    return "0x%s"%("00000000%x"%(n&0xffffffff))[-8:]

Try this function:

'%#4x' % (-1 & 0xffffffff)

Use

"0x{:04x}".format((int(my_num) & 0xFFFF), '04x')

where my_num is the required number.

Tags:

Python