我正在寻找将大型unsigned int转换为字节数组的东西,以便我能够通过串行端口发送它。
在python 3.2中,内置函数to_bytes来转换长整数以返回字节数组。但是这在python 2.7中不可用。同样,python 2.7有一个struct lib,但该库不处理任意大的int。堆栈溢出有类似的question,但是接受的答案是使用pickle。这对我没有帮助,因为我希望在不失去压缩的情况下发送long int。我当然可以迭代int并提出一些定制的东西,但我希望有一些东西可以解决我的繁重工作。
答案 0 :(得分:1)
使用x
格式说明符将其转换为十六进制字符串,如果长度为奇数,则添加前导0
,然后将其解码为'hex'
以将其转换为字节。不是最快的方式,而是简单。
>>> '{:x}'.format(20L).decode('hex')
'\x14'