c++判断奇偶_常用的数据差错控制技术(2)-奇偶校验

本文介绍了嵌入式系统中的一种数据差错控制技术——奇偶校验,包括奇偶校验的基本原理、校验位的设置、校验方法(水平、垂直奇偶校验)以及C++代码实现。奇偶校验法在UART串口通信中广泛应用,但存在无法纠错和偶数位误码无法检测的问题。
摘要由CSDN通过智能技术生成

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是嵌入式里数据差错控制技术 - 奇偶校验。

在系列第一篇文章里,痞子衡给大家介绍了最简单的校验法 - 重复校验,该校验法实现简单,检错纠错能力都还不错,但传输效率实在是不高,在效率至上的大背景下,这种方法是不能容忍的。今天痞子衡继续给大家介绍另一种也非常简单但效率较高的校验法 - 即奇偶校验法。

一、奇偶校验法基本原理

1.1 校验依据

奇偶校验法的校验依据就是判断一次传输的一组二进制数据中 bit "1"的奇偶性(奇数个还是偶数个)在传输前后是否一致,所以其实奇偶检验法有两个子类:

奇校验:如果以二进制数据中 1 的个数是奇数为依据,则是奇校验

偶校验:如果以二进制数据中 1 的个数是偶数为依据,则是偶校验

一般在同步传输方式中常采用奇校验,而在异步传输方式中常采用偶校验。

1.2 奇偶校验位

为了实现奇偶校验,通常会在传输的这组二进制数据中插入一个额外的奇偶校验位(bit),用它来确保发送出去的这组二进制数据中“1”的个数为奇数或偶数。

划重点,奇偶校验位并不是用来标记原始传输数据中 1 的个数是奇数还是偶数,而是用来确保原始数据加上奇偶校验位后的合成数据中 1 的个数是奇数或者偶数。

1.3 校验方法

常用的奇偶校验共有三种:水平奇偶校验,垂直奇偶校验校验和水平垂直奇偶校验。以对 32 位数据:10100101 10111001 10000100 00011010 进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值