假设我有经典的4字节有符号整数,我想要类似的东西
print hex(-1)
给我一些类似的东西
>>为0xffffffff
实际上,上面给出了-0x1。我在一些较低级别的语言中徘徊,而python命令行很容易。
那么..有办法吗?
答案 0 :(得分:27)
这样可以解决问题:
>>> print hex (-1 & 0xffffffff)
0xffffffffL
或者,以函数形式(并剥离尾随的“L”):
>>> def hex2(n):
... return hex (n & 0xffffffff)[:-1]
...
>>> print hex2(-1)
0xffffffff
>>> print hex2(17)
0x11
或者,总是返回固定大小的变体(可能有更好的方法):
>>> def hex3(n):
... return "0x%s"%("00000000%s"%(hex(n&0xffffffff)[2:-1]))[-8:]
...
>>> print hex3(-1)
0xffffffff
>>> print hex3(17)
0x00000011
或者,完全避免使用hex(),感谢Ignacio和bobince:
def hex2(n):
return "0x%x"%(n&0xffffffff)
def hex3(n):
return "0x%s"%("00000000%x"%(n&0xffffffff))[-8:]
答案 1 :(得分:4)
尝试此功能:
'%#4x' % (-1 & 0xffffffff)
答案 2 :(得分:1)
“0x {:04x}”。format((int(my_num)& 0xFFFF),'04x'),其中my_num是必需的数字