web-dev-qa-db-ja.com

Bytes to int-Python 3

私は現在、暗号化/復号化プログラムに取り組んでおり、バイトを整数に変換できる必要があります。そんなこと知ってる:

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

しかし、私は逆を行う方法を見つけることができません。私はひどく間違っていますか?

32

少なくとも3.2を使用していると仮定すると、 このために組み込まれています があります

int.from_bytesbytes、byteorder、*、signed = False

...

引数bytesは、バイトのようなオブジェクトか、反復可能な生成バイトのいずれかでなければなりません。

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
57
Peter DeGlopper
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
0
noura selem