擅长:python、mysql、java
<p>问题是十六进制值转换,我不得不使用ord()方法。int()方法仅适用于以10为基数的字符串中的数字。</p>
<pre><code>In [33]: int('4')
Out[33]: 4
In [34]: ord('\x34')
Out[34]: 52
In [35]: ord('4')
Out[35]: 52
In [36]: ord('\x10')
Out[36]: 16
</code></pre>
<p>所以,这个代码是有效的。</p>
<pre><code>val = pack("i", 4)
print "%d" % ord(val[0]) # -> 4
</code></pre>
<p>或者</p>
<pre><code>print "%s" % hex(ord(val[0])) # -> 0x4
</code></pre>