這裡只列出Checksum其中一種Sum Zero,我公司有使用到的方法。
還在學習中,如有錯誤,還請不吝嗇提出,確認後將盡快更正。
Checksum 的產生機制很簡單,將資料分成 K 小塊之後,將每塊的所有值全部相加之後得到一個數字,再取其「二補數」,就可以得到 Checksum。
Checksum 的檢查機制則是將所有收到的 K 個小塊中所有值相加再加上 Checksum 後,再取其「二補數」,若結果為 0 則表示正確,不為 0 則表示傳輸中有發生錯誤。

有一組16進位制數值資料: 0x6A00C8
| Byte | check | 組成元素 |
|---|---|---|
| 0x6A | 0x6A | = 0x00 + 0x6A |
| 0x00 | 0x6A | = 0x6A + 0x00 |
| 0xC8 | 0x32 | = 0x6A + 0xC8 |
checkSum = 0xCE // 0x32在8進位制下的二補數
0x6A + 0xC8應該會得到 0x132,但是data type為char,限制在1 byte之下,只會保留0x32的數值如果有fx-991ES工程計算機
Neg
Neg(32
FFFFFFCE
CE
參考資料