2013-03-29 63 views
-3

我有一個.bin文件,它以4位格式(即每個像素爲4位)存儲像素數據。如何將數據讀入C程序中作爲4位。 char以8位塊的形式讀取它,所以如果我有一個指向文件開頭的指針並增加它,它會跳過一個像素。從.bin文件讀取4位塊

+3

這可以用一個小的改變對你的代碼... –

+0

也許可以解決,因爲每個字節有8位,你可以看看只有1/2的字節? – IAbstract

+1

@DrewDormann:當然如果OP包含了一些代碼,你可以指出......;) – IAbstract

回答

1

我不知道任何處理器允許您以小於一個字節的增量從文件中讀取(儘管某些處理器中某個字節的位數不同),並且在C++中不支持讀取小於一個字節大小的塊。假設一個字節中有8位,則需要讀取一個字節,然後將其分成兩個像素。

如果你讀返回無符號的字符C,然後

sometype pixel1 = c >> 4; 
sometype pixel2 = c & 0xf; 
+3

當位移符號類型時要小心。 :) –

+0

爲了簡單起見,我使它成爲了一個無符號的字符。 – Muscles