私は現在暗号化/復号化プログラムに取り組んでおり、バイトを整数に変換できる必要があります。そんなこと知ってる:
bytes([3]) = b'\x03'
しかし、私はその逆を行う方法を見つけることができません。私はひどく間違っているのですか?
私は現在暗号化/復号化プログラムに取り組んでおり、バイトを整数に変換できる必要があります。そんなこと知ってる:
bytes([3]) = b'\x03'
しかし、私はその逆を行う方法を見つけることができません。私はひどく間違っているのですか?
回答:
少なくとも3.2を使用していると仮定すると、これには組み込みがあります。
int.from_bytes(bytes、byteorder、*、signed = False)
..。
引数bytesは、bytes-likeオブジェクトまたは反復可能な生成バイトのいずれかである必要があります。
byteorder引数は、整数を表すために使用されるバイト順序を決定します。バイトオーダーが「大きい」場合、最上位バイトはバイト配列の先頭にあります。バイトオーダーが「小さい」場合、最上位バイトはバイト配列の最後にあります。ホストシステムのネイティブバイトオーダーを要求するには、バイトオーダー値としてsys.byteorderを使用します。
符号付き引数は、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
int.from_bytes
とord(b'\x03')
シングルバイト/文字のためには?
int.from_bytes
-あなたがそれを言うならば符号付き整数としてバイトを解釈することができますint.from_bytes(b'\xe4', "big", signed=True)
しながら、リターン-28ord()
またはint.from_bytes
符号なしのモードに戻り228で
int.from_bytes( bytes, byteorder, *, signed=False )
私はこのウェブサイトの機能を使用しましたが、うまく機能しません
https://coderwall.com/p/x6xtxq/convert-bytes-to-int-or-int-to-bytes-in-python
def bytes_to_int(bytes):
result = 0
for b in bytes:
result = result * 256 + int(b)
return result
def int_to_bytes(value, length):
result = []
for i in range(0, length):
result.append(value >> (i * 8) & 0xff)
result.reverse()
return result
struct
複数の変数を一度に変換したい場合のモジュールもあります。