Convert bytes to int? Convert bytes to int? python-3.x python-3.x

Convert bytes to int?


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. If byteorder is "big", the most significant byte is at the beginning of the byte array. If byteorder is "little", the most significant byte is at the end of the byte array. To request the native byte order of the host system, use sys.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")                         # 1int.from_bytes(b'\x00\x01', "little")                      # 256int.from_bytes(b'\x00\x10', byteorder='little')            # 4096int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)  #-1024


Lists of bytes are subscriptable (at least in Python 3.6). This way you can retrieve the decimal value of each byte individually.

>>> intlist = [64, 4, 26, 163, 255]>>> bytelist = bytes(intlist)       # b'@\x04\x1a\xa3\xff'>>> for b in bytelist:...    print(b)                     # 64  4  26  163  255>>> [b for b in bytelist]           # [64, 4, 26, 163, 255]>>> bytelist[2]                     # 26 


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

doesn't work with me I used function from this website, it works well

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 resultdef int_to_bytes(value, length):    result = []    for i in range(0, length):        result.append(value >> (i * 8) & 0xff)    result.reverse()    return result