みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
Pythonの解説シリーズです。
今回はint型とbytes型を変換する方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- int型をbytes型に変換出来る
- bytes型をint型に変換出来る
Python3で追加された機能だよ!
int型とbytes型を変換
bytes型 バイトコードとは
いわゆる機械語の類
人間には読み取れないが、機械内で処理するために使われる
一般的には16進数で書かれている(厳密には2進数)
実際に見てみるとこのようになります。
12345
↓バイトコードに変換
31,32,33,34,35
理解できなくてOKだよ!
エンディアンとは
bc a0 04 c8
上のようなバイナリコードがあった場合に
- 左から読むことをビッグエンディアン
- 右から読むことをリトルエンディアン
といいます。
※ちなみに、Pythonだと各バイトの前に\xをつけて表現されます
\xbc\xa0\x04\xc8
int型→bytes型に変換してみよう!
int型→bytes型に変換する構文
int型の変数.to_bytes(バイト数, エンディアン)
int型→bytes型に変換する例文
N = 1224
print(N.to_bytes(4, "big"))
# b'\x00\x00\x04\xc8'
print(N.to_bytes(2, "little"))
# b'\xc8\x04'
bytes型→int型に変換してみよう!
bytes型→int型に変換する構文
int.from_bytes(変換対象のバイトコード, エンディアン)
bytes型→int型に変換する例文
print(int.from_bytes(b'\x00\x00\x04\xc8', "big"))
# 1224
print(int.from_bytes(b'\xc8\x04', "little"))
# 1224
まとめ
- バイトコードを左から読むことをビッグエンディアン
- バイトコードを右から読むことをリトルエンディアン
- int型→bytes型に変換:int型の変数.to_bytes(バイト数, エンディアン)
- bytes型→int型に変換:int.from_bytes(変換対象のバイトコード, エンディアン)
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈