和校验(CheckSum)
文章目录算法介绍常见形式及实现优缺点分析检不出的错误类型常见类型及实现方法以python为例算法介绍和校验是最简单、最直观的检错编码方法属于检错码不能纠错。核心思想把数据的所有字节按位相加将结果的低8位或低16位作为校验码附加在数据末尾一起发送。┌─────────────────────────────────────────────┐ │ 发送方 │ │ │ │ 数据D₁ D₂ D₃... Dₙ │ │ ↓ ↓ ↓ ↓ │ │ 相加SD₁D₂D₃...Dₙ │ │ ↓ │ │ 校验和CSS 的低8位模256 │ │ ↓ │ │ 发送D₁ D₂ D₃... Dₙ CS │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ 接收方 │ │ │ │ 收到D₁ D₂D₃ ... DₙCS │ │ ↓ ↓ ↓ ↓ │ │ 相加SD₁D₂...Dₙ CS│ │ ↓ │ │ 判断S 的低8位0 │ │ ✅0→ 可能正确 │ │ ❌ ≠0→ 一定有错 │ └─────────────────────────────────────────────┘常见形式及实现优缺点分析检不出的错误类型常见类型及实现方法以python为例8位和校验uint8_t CheckSum(uint8_t *Buf, uint8_t Len){uint8_ti0;uint8_tsum0;for(i0;iLen;i){sum*Buf;}returnsum;}16位和校验uint16_t CheckSum(uint16_t *Buf, uint8_t Len){uint8_ti0;uint16_tsum0;for(i0;iLen;i){sum*Buf;}returnsum;}