我正在寫一個模塊,它通過串口接收光譜儀的一些數據並需要對其進行解碼。根據手冊重複無符號MSB和LSB 8位字的頻譜數據編碼爲512字節。我將如何在C/C++中解碼這個?如何解碼重複的無符號MSB和LSB 8位字?
23 - 534編碼爲重複無符號MSB 512字節和LSB 8位字 [MSB] * 256 + [LSB]。
這是手冊中的一個片段。
好的,我想在中添加另一部分到這個問題。根據下面的評論,這是在大端。現在,我對此感到困惑的是,如果它確實是大端的,那麼轉換爲小端就像轉換所有字節的順序一樣簡單?如果是這種情況,那麼對此的輸出本質上將是...... LSB5,MSB5,LSB4,MSB4,LSB3,MSB3,LSB2,MSB2,LSB1,MSB1等等,然後可以將其轉換爲16位字。我在這裏錯了什麼?另外,如果這確實是big-endian,那麼是否有任何原生(甚至是平臺特有的,如果有必要,但速度更快)方法來處理轉換?
「重複MSB和LSB單詞」是什麼意思? – 2013-12-13 19:19:04
@ H2CO3這是一個字節流,如下所示:'[MSB1] [LSB1] [MSB2] [LSB2] [MSB3] [LSB3] ...'。兩個字節必須組合成一個單詞:'[WRD1] [WRD2] [WRD3] ...'。 –
難道這種格式正好是16位無符號的big-endian嗎? –