Python把负数转成16进制?

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

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

请问应该怎么转换?
...全文
876 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2011-12-19
  • 打赏
  • 举报
回复 2
完全是自言自语。
colordancer 2011-12-19
  • 打赏
  • 举报
回复
我找到了方法,只要&0xFFFFFFFF就行了
angel_su 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,)
>>>

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧