答え 1:
Python 2 または Python 3 で文字列を一連のバイトに変換するには、文字列のencode
メソッドを使用します。エンコーディング パラメータを指定しない場合は'ascii'
、常に数字には十分な値が使用されます。
s = str(n).encode()
Python 2 ではstr(n)
、すでにバイトが生成されます。encode
この文字列は暗黙的に Unicode に変換され、再びバイトに戻されるため、二重変換が行われます。不要な作業ですが、害はなく、Python 3 と完全に互換性があります。
答え 2:
上記は、人間が読める形式で ASCII バイトの文字列を生成するという、実際に尋ねられた質問に対する回答です。しかし、人々は別の質問への答えを得ようとしてここに来続けているので、私はその質問にも答えます. 上記の回答10
を使用するように変換したいが、変換したい場合は読み続けてください。b'10'
10
b'\x0a\x00\x00\x00'
このstruct
モジュールは、さまざまな型とそれらのバイナリ表現を一連のバイトとして変換するために特別に提供されました。タイプからバイトへの変換は で行われstruct.pack
ます。fmt
どの変換を実行するかを決定する format パラメータがあります。4 バイト整数の場合、それは符号付きi
数値またはI
符号なし数値用です。その他の可能性については、フォーマット文字テーブルを参照してください。また、出力が 1 バイトを超える場合のオプションについては、バイト オーダー、サイズ、アライメント テーブルを参照してください。
import struct
s = struct.pack('<i', 5) # b'\x05\x00\x00\x00'