+ -
当前位置:首页 → 问答吧 → Python把负数转成16进制?

Python把负数转成16进制?

时间:2011-12-19

来源:互联网

比如我想把-1转换成16进制,应该是0xFFFFFFFF,可是我试了几种方法,python给我返回的是-0x1

同样,想把0xFFFFFFFF转成-1而不是变成long

请问应该怎么转换?

作者: colordancer   发布时间: 2011-12-19

你这是C的观念,python里数字0xFFFFFFFF是正数不是-1,试试struct模块:

>>> from struct import *
>>> pack('i', -1)
'\xff\xff\xff\xff'
>>> unpack('i', '\xff\xff\xff\xff')
(-1,)
>>> unpack('i', pack('I', 0xFFFFFFFF))
(-1,)
>>>

作者: angel_su   发布时间: 2011-12-19

我找到了方法,只要&0xFFFFFFFF就行了

作者: colordancer   发布时间: 2011-12-19