2017-01-05 10 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 

(Pythonで '{0:08b}'.format(ord(byte))を行うことによって取得されるよう)

言い換えれば、

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これはあなたが必要と考えるものです。

関連する問題