2017-01-05 5 views
2

비표준 길이 비트를 읽음으로써 값을로드하는 matlab 스크립트가 있습니다. 예를 들어Python에서 비표준 비트 길이의 이진 파일 읽기

:

[file, errmsg] = fopen(FileName,'r'); 

year = fread(file,1,'ubit12','ieee-le'); 
month = fread(file,1,'ubit4','ieee-le'); 
day = fread(file,1,'ubit5','ieee-le'); 
version = fread(file,1,'ubit11','ieee-le'); 

로드 된 값은 다음

year =2016 
month =7 
day =21 
version =0 

파일의 진 버전 인 반면 :

11100000 01110111 00010101 00000000 

(파이썬 '{0:08b}'.format(ord(byte))을 수행하여 검색된로서)

즉3210

,

year -> 4 lsb of byte 2 + byte 1 (011111100000) 
month -> 4 msb of byte 2 (0111) 
day -> 5 lsb of byte 3 (10101) 
version -> 3 msb of byte 3 + byte 4 (00000000000) 

는 동일한 기능을 달성하기 위해 파이썬 방법이 있나요?

답변

0

Bit array 나는 이것이 당신이 필요로하는 것이라고 생각합니다.