【Python】int型とbytes型を変換しよう!

Python

みなさんこんにちは、現役エンジニアのサメハックです

未経験から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フォローしてもらえると嬉しいです🦈

タイトルとURLをコピーしました