FIELD1 = 61440
FIELD2 = 3584
FIELD3 = 511

def bytes_to_int(num):
    res = 0
num = num[::-1]
for i in range(len(num)):
    res += num[i] * 256 ** i
return res

def get_fields(f):
    chunk = bytes_to_int(f.read(2))
f1 = (chunk & FIELD1) >> 12
f2 = (chunk & FIELD2) >> 9
f3 = chunk & FIELD3
f4 = f.read(f3)
f4 = bytes_to_int(f4)
return f1, f2, f3, f4
file = open('file.dat', 'rb')
print(get_fields(file))
file.close()
Самый быстрый способ распаковать биты (суббайты) числа из файла