1
シリアル接続で32ビット整数を送信する必要があります。0xc6bf6f34
は、b'\xc6\xbf\x6f\x34'
になります。32ビット整数をバイト配列にエンコードするにはどうすればよいですか?
そのために、私はこれを作成し、しかし、常に、このような符号化後のように、私はそれがpythonicismだ場合は標準libaryで何かを改善することができたと思った:あなたは、Pythonを使用している場合
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
'struct.pack()'ソリューションはPython 3.2以降でも動作しますか? – Jamie
@Jamie、Python 2.x、3.xの両方で動作します。 Python 2.7.13/3.5.3/3.6.1でテストしました。 – falsetru
@Jamie、あなたの変更を元に戻しました。あなたはあなたの質問に応じてリトルエンディアンを望みません。 – falsetru