LINUX.ORG.RU

[python]Чтение бинарника

 


0

1

Есть кусок спецификации бинарного файла:

Header BOXHEADER BoxType = 'abst' (0x61627374)
Version UI8
Flags UI24
BootstrapinfoVersion UI32 
где UI - Unsigned integer написал простой пример, но мне кажется читает он немного не то.

def i32():
    c0 = file.read(1)
    c1 = file.read(1)
    c2 = file.read(1)
    c3 = file.read(1)
    return ord(c0) + (ord(c1)<<8) + (ord(c2)<<16) + (ord(c3)<<24)

def i24():
    c0 = file.read(1)
    c1 = file.read(1)
    c2 = file.read(1)
    return ord(c0) + (ord(c1)<<8) + (ord(c2)<<16)
    
def i8():
    c0 = file.read(1)
    return ord(c0)

header = file.read(4)
while header != 'abst' and header != "":
    header = file.read(4)

print i8()
print i24()
print i32()
Где ошибка ?

ага и написано еще :

Multi-byte integers shall be stored in big-endian byte order, i

★★☆☆

Последнее исправление: SI (всего исправлений: 1)

В стандартной библиотеке есть замечательный модуль struct.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.