2012-05-24 47 views
0

我從來沒有徘徊過讀取二進制數據。我正在努力學習現在,並做一個簡單的應用程序來讀取FLAC文件中的標題數據,並以可讀的格式顯示信息。首先,假設我感興趣的第一位數據是0x10000100,那麼如何使用C#讀取第一位(1),然後讀取存儲在隨後7位中的整型值?我已經知道如何使用binaryreader將字節讀入字節數組中......只是不知道如何在代碼中解析這些數據。如何讀取與數據混合的位標誌?

在此先感謝。

回答

2

Binray「和」&「或」|「,而不是」~「被用於提取比特。

這裏是近似的代碼:

byte value = 0x84; 
bool flag = (value & 0x80) != 0; 
var intPart = value & ~0x80; 
+0

酷,謝謝。有什麼資料可以推薦詳細解釋一切是如何工作的,爲什麼這些符號是它的原因?我有點不明白,但我覺得有點缺乏。 – agent154

+0

搜索字詞 - 「C#位操作」或「C#按位操作」。這個問題http://stackoverflow.com/questions/93744/most-common-c-sharp-bitwise-operations看起來像它有很多的信息。請注意,該主題對於許多語言(C/Java/C#/ JavaScript ...)具有通用語法,因此不必通過語言來限制搜索。 –