1. ホーム
  2. python

[解決済み] バイトをintに変換しますか?

2022-03-03 13:43:25

質問

現在、暗号化・復号化プログラムを作っているのですが、バイトを整数に変換できるようにする必要があります。それは分かっています。

bytes([3]) = b'\x03'

しかし、その逆を行う方法がわかりません。何かひどく間違っているのだろうか?

どのように解決するのですか?

3.2以上をお使いであれば、このページには このために組み込まれた :

int.from_bytes ( bytes , byteorder , *, signed=False )

...

引数 bytes は、bytes ライクなオブジェクトか、イテラブルでなければなりません。 バイトを生成する。

byteorder の引数は、そのバイト順を決定します。 の整数を生成します。もし byteorder "big" の場合、最上位バイトは バイト配列の先頭。もし byteorder "little" の場合、最も 最上位バイトはバイト配列の末尾にある。バイト配列の末尾に ホストシステムのネイティブなバイトオーダーを使用するには sys.byteorder をバイト の順序の値です。

signed 引数は、2 の補数を使うかどうかを示す。 は整数を表す。

## Examples:
int.from_bytes(b'\x00\x01', "big")                         # 1
int.from_bytes(b'\x00\x01', "little")                      # 256

int.from_bytes(b'\x00\x10', byteorder='little')            # 4096
int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)  #-1024