我遇到了一個我似乎無法解決的問題。 我有一個類型的文件「ASDF」,並在他們的頭部我可以獲得必要的信息來閱讀它們。問題是其中一個「字段」只有4位長。讀取4位而不會丟失信息
所以,可以說是這樣的:
- 從位0到8這是當前節點的索引(我讀過這已經)
- 月8日至16這對指數下一個節點(閱讀以及)
- 從位16至20內容的長度(串,等..)
所以我的問題是,如果我嘗試用bytereader閱讀「長度」我會失去4位信息,或者會失去「4比特關閉」。有沒有辦法只讀4位?
我遇到了一個我似乎無法解決的問題。 我有一個類型的文件「ASDF」,並在他們的頭部我可以獲得必要的信息來閱讀它們。問題是其中一個「字段」只有4位長。讀取4位而不會丟失信息
所以,可以說是這樣的:
所以我的問題是,如果我嘗試用bytereader閱讀「長度」我會失去4位信息,或者會失去「4比特關閉」。有沒有辦法只讀4位?
當你閱讀別人你應該閱讀這字節然後申請爲0x0F
的位掩碼例如
byte result = (byte)(byteRead & 0x0F);
這將在結果保持低四位。
如果所需的位是高四,那麼你可以申請移位運算
byte result = (byte)((byteRead & 0x0F) >> 5);
你必須修改或包裹你的bytereader記住額外的4位,返回他們的下一次調用(加根據需要從下一個字節中讀取額外的位,等等) – Rup 2012-04-23 12:33:30
只是不使用ByteReader(反正這是什麼)? – 2012-04-23 12:37:56