2013-04-10 83 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