2013-04-10 50 views
1

我有一个整数(67)需要转换为十六进制,并存储为喜欢的字符串:整数转换与填充咒在Python

"\x00\x00\x00\x43"

我怎样才能做到这一点在Python?

+2

你尝试过什么吗? – emecas 2013-04-10 19:06:55

+1

Dang,我的复制/粘贴缓冲区错过了。我打算标记这一个:http://stackoverflow.com/questions/1708598/convert-decimal-to-hex-python?rq=1 – 2013-04-10 19:10:57

+0

我试过十六进制(整数)[2:] .zfill(8)。但是这只会返回一个没有“\ x”的十六进制。 – user2267580 2013-04-10 19:15:42

回答

0

由于OP中的含糊不清而更新。

尝试...

def convert(i): 
    result = '' 
    for c in struct.pack('>i', 67): 
     c = hex(ord(c))[2:] 
     if len(c) < 2: 
      c = '0%s' % c 
     result += '\\x%s' % c 
    return result 

>>> print convert(67) 
\x00\x00\x00\x43 
+0

大声笑我应该开始复制答案,而不是从现在开始标记为重复。 http://stackoverflow.com/questions/1708598/convert-decimal-to-hex-python?rq=1 – 2013-04-10 19:15:39

+0

我不知道为什么这是downvoted。当然,它不应该是_upvoted_,因为它是在“完全相同的答案”的“可能的重复”链接之后发布的,并且该问题应该无论如何都应该被关闭......但是这并没有错,误导,混乱等等,为什么要低估它? – abarnert 2013-04-10 19:17:19

+0

struct.pack('> i“,67)返回”C“,我需要它返回”\ x00 \ x00 \ x00 \ x43“ – user2267580 2013-04-10 19:19:12