擅长:python、mysql、java
<pre><code>def int_to_hexbytes(i):
s = '%X' % i
if len(s) % 2:
s = '0' + s
return [s[i:i+2] for i in range(0, len(s), 2)]
def words_to_hexbytes(a):
ret = []
for i in a:
ret += int_to_hexbytes(i)
return ret
assert int_to_hexbytes(0x0123456789ABCDEF) == ['01', '23', '45', '67', '89', 'AB', 'CD', 'EF']
assert int_to_hexbytes(0x123456789ABCDEF0) == ['12', '34', '56', '78', '9A', 'BC', 'DE', 'F0']
assert words_to_hexbytes([0x123, 0x456, 0x78]) == ['01', '23', '04', '56', '78']
assert words_to_hexbytes([0x085F80, 0x0109A53, 0x0188C6D]) == ['08', '5F', '80', '10', '9A', '53', '18', '8C', '6D']
</code></pre>
<p><code>int_to_hexbytes</code>使用<code>%</code>格式化运算符将整型参数转换为包含其十六进制表示形式的字符串;然后使用列表理解将该字符串每秒钟拆分为一个列表(即每个字节)。注意,由于最左边的字节可能小于<code>0x10</code>,所以代码预先加上一个<code>'0'</code>(即当字符串长度为奇数时)。在</p>
<p><code>words_to_hexbytes</code>只需迭代数组参数并附加<code>int_to_hexbytes</code>的结果。在</p>
<p>随后的<code>assert</code>只是测试代码的一种快速方法,同时向读者展示预期的结果。在</p>