簡體   English   中英

從十六進制值數組求和來計算校驗和不起作用

[英]Sum from an Array of Hex values to compute Checksum not working

我有一個包含以下十六進制值的數組:

A8, 00, 00, 11, 01, 44, 33, 28, 0C, 15, 2B, 00, 28, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, FF, 00, 00, 00, FE, FF, 80, 7F, 00, 00, 0C, 00, 03, 35, 00, 00, 00

我需要從他們那里計算一個校驗和,我知道結果是 C5

我得到了以下信息,但我認為它們是模糊的,因為它們含糊不清:

  • 校驗和是通過對值求和得出的,結果也是“使用最右邊的十六進制字節”

  • 相加的所有數據的最低有效字節

  • 添加數據 8 位寬

如果您更喜歡此為十進制:

168, 0, 0, 17, 1, 68, 51, 40, 12, 21, 43, 0, 40, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 1 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 1 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 255, 0, 0, 0, 254, 255, 1 127, 0, 0, 255, 0, 0, 0, 254, 255, 128, 127, 0, 0, 12, 0, 3, 53, 0, 0, 0

十進制checksum is 197

任何幫助,將不勝感激。

編輯:

在回答RJM的問題時,我基本上嘗試遍歷值並合計 LSB 和 MSB。 如下:

int LSB = 0; 
int MSB = 0;
foreach (Byte value in byteArray) {
    LSB += (value & 1);
    MSB += (value >> 7);
}
//Expected Checksum is 197
//LSB == 52
//MSB == 60

值得慶幸的是,向我提供了更多信息,我可以發布解決方案。

int chk = 0;
foreach (Byte value in byteArray) {
    chk += value;
}
chk = (chk & 255); 

所以,基本上我需要對所有字節求和,然后使用結果的 LSB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM