みなさんこんにちは、現役エンジニアのサメハックです
未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。
Pythonの解説シリーズです。
今回はint型とbytes型を変換する方法について学んでいきましょう!
駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!
この記事を読むと・・・
- int型をbytes型に変換出来る
- bytes型をint型に変換出来る
Python3で追加された機能だよ!
int型とbytes型を変換
![](https://samehack.com/wp-content/uploads/2023/06/hatena-gf6546b49c_1920-1024x796.png)
bytes型 バイトコードとは
いわゆる機械語の類
人間には読み取れないが、機械内で処理するために使われる
一般的には16進数で書かれている(厳密には2進数)
実際に見てみるとこのようになります。
12345
↓バイトコードに変換
31,32,33,34,35
理解できなくてOKだよ!
エンディアンとは
bc a0 04 c8
上のようなバイナリコードがあった場合に
- 左から読むことをビッグエンディアン
- 右から読むことをリトルエンディアン
といいます。
※ちなみに、Pythonだと各バイトの前に\xをつけて表現されます
\xbc\xa0\x04\xc8
int型→bytes型に変換してみよう!
![](https://samehack.com/wp-content/uploads/2023/06/cyber-glasses-1938449_1920-1-1024x683.jpg)
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型に変換してみよう!
![](https://samehack.com/wp-content/uploads/2023/06/code-1839406_1920-1024x683.jpg)
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
まとめ
![](https://samehack.com/wp-content/uploads/2021/11/dfe65cc8c5d3185e7b92ade5af4cc6bb-4-1024x264.jpg)
- バイトコードを左から読むことをビッグエンディアン
- バイトコードを右から読むことをリトルエンディアン
- int型→bytes型に変換:int型の変数.to_bytes(バイト数, エンディアン)
- bytes型→int型に変換:int.from_bytes(変換対象のバイトコード, エンディアン)
![](https://samehack.com/wp-content/uploads/2021/09/00c3d3cf1d32995d7b5414ac551d13f3.png)
満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈