这里只列出Checksum其中一种Sum Zero
,我公司有使用到的方法。
还在学习中,如有错误,还请不吝啬提出,确认后将尽快更正。
产生Checksum
Checksum 的产生机制很简单,将资料分成 K 小块之后,将每块的所有值全部相加之后得到一个数字,再取其「二补数」,就可以得到 Checksum。
检查Checksum
Checksum 的检查机制则是将所有收到的 K 个小块中所有值相加再加上 Checksum 后,再取其「二补数」,若结果为 0 则表示正确,不为 0 则表示传输中有发生错误。
产生Checksum - 範例
有一组16进位制数值资料: 0x6A00C8
checkSum = 0xCE // 0x32在8进位制下的二补数
解释
0x6A + 0xC8
应该会得到 0x132
,但是data type
为char
,限制在1 byte
之下,只会保留0x32
的数值fx-991ES辅助计算二补数
如果有fx-991ES工程计算机
(ON)开机后,按下(MODE),再按下数字(4),切换模式到(BASE-N)按下(X^■)键(上方带有绿色HEX),切换到16进位制模式按下(SHIFT),再按下数字(3)[BASE],再按下数字(6),呼叫Neg
按下数字(3)、数字(2),画面应该会显示Neg(32
按下(=),开始计算结果会显示FFFFFFCE
8进位制下,只会保留最右边的2位数,也就是CE
参考资料
核对和 - 维基百科,自由的百科全书二补数 - 维基百科,自由的百科全书[笔记] 网路通讯原理:CRC 与 Checksum | iLog42. 使用checksum检查机制,判断接收的资料为正确,则checksum与..-阿摩线上测验Online CRC-8 CRC-16 CRC-32 Calculatorfx-991ES 工程计算机 官方说明书