質問: (9).to_bytes(16, 'big') //出力 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09 b'00000000000000000000000000000009' b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t' ### 試したこと structのpack関数やto_bytes()等を試しましたが仕様上実現できませんでした. str型で形を作ることはできましたがこれをbytes型へキャストすることもできず困っています ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: データとしては正しく変換されています。printのとき、「asciiの範囲にあればasciiで表す」というルールで処理されるだけで。 ``` >>> (9).to_bytes(16, "big") b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\t' >>> (9).to_bytes(16, "big")[-1] 9 ``` 素直にbytesのまま送れば良い気もしますが、受信側で「バイナリデータ」ではなく「バイナリデータ表現風の文字列のバイナリ」を受け取らないといけない、というシチュエーションなのでしょうか?