2
在個人電腦的世界中,一個字節通常表示計算機視爲一個單元的8位存儲器邊界對齊。在小型和大型計算機等16個32位(分別稱爲全字和雙字)更長的序列也是可能的。
但在遙感世界中,傳感器/檢測器用於通過使用他們自己的輻射測量分辨率例如6位,10位,並測量在從大氣和地球的輻射的強度的變化-12-位。因此,由地面站所捕獲的遙感原始數據圖像總是裝在6位,10位,或12位BCD流的形式。這些數據按掃描線存儲在掃描線中。
我的工作是一種形式的運行結束二進制文件中讀取這種掃描線之一,並儲存了一會兒unsigned char類型源緩衝。對於6位流,我必須擴展到8位(一個字節),和10位或12位流,我會讓他們被縮放無符號短整數。最後,我應該得到一個無符號字符(對於6位)或無符號短目標緩衝區。
請你告訴我該怎麼做? C/C++代碼演示將非常感謝!謝謝。
將6/10/12比特流轉換爲比例無符號字符/ short
10101010 01110101 00011001
| |
-----------
10-bit BCD
10101010 01110101 00011001
| |
-----------
10-bit BCD
10101010 01110101 01100110
| |
------------
10-bit BCD
親愛的馬克,謝謝你的回答。如何從無符號字符數組中提取一個6位/ 10位/ 12位?以10比特分割爲例,顯然,10比特BCD可以選擇跨度2字節或3字節。 – GoldenLee 2011-06-17 06:58:53