Question
Asked By – Vladimir Shevyakov
I’m currently working on an encryption/decryption program and I need to be able to convert bytes to an integer. I know that:
bytes([3]) = b'\x03'
Yet I cannot find out how to do the inverse. What am I doing terribly wrong?
Now we will see solution for issue: Convert bytes to int?
Answer
Assuming you’re on at least 3.2, there’s a built in for this:
int.from_bytes
(bytes
,byteorder
, *,signed=False
)…
The argument
bytes
must either be a bytes-like object or an iterable
producing bytes.The
byteorder
argument determines the byte order used to represent the
integer. Ifbyteorder
is"big"
, the most significant byte is at the
beginning of the byte array. Ifbyteorder
is"little"
, the most
significant byte is at the end of the byte array. To request the
native byte order of the host system, usesys.byteorder
as the byte
order value.The
signed
argument indicates whether two’s complement is used to
represent the integer.
## 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
This question is answered By – Peter DeGlopper
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0