我需要通过一个串行连接发送一个32位的整数,比如:0xc6bf6f34
应该变成:b'\xc6\xbf\x6f\x34'
。在
为此,我创建了这个,但是,像往常一样,在这样的编码之后,我想知道是否可以用标准库中的某些东西来改进pythonicism:
def ltonlba(value):
''' ltonlba : Long to Network Long Byte Array '''
from socket import htonl
value = htonl(value)
ba = b''
for i in range(4):
ba += chr((value) & 0xff)
value >>= 8
return ba
如果您使用的是python3.2+,则可以使用^{} :
否则,可以将^{} 与} module doc ):
^{pr2}$<I
格式一起使用(<
:little-endian,I
:4字节无符号整数,请参见Format strings - ^{更新/注释:如果要获取big-endian(或网络endian),则应使用}:
int.to_bytes
指定{与}与{}一起:
>
或{相关问题 更多 >
编程相关推荐