奇偶校验的概念

2023-05-16

奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中"1"的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中"1"的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验"1"的个数是否为奇数,从而确定传输代码的正确性。

奇偶校验需要一位校验位,即使用串口通信的方式2或方式3(8位数据位+1位校验位)。奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。以发送字符:10101010为例

偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。还是以发送字符:10101010为例

数据和校验位发送给接受方后,接收方再次对数据中1的个数进行计算,如果为奇数则校验通过,表示此次传输过程未发生错误。如果不是奇数,则表示有错误发生,此时接收方可以向发送方发送请求,要求重新发送一遍数据。

优缺点:

  • 奇偶校验的检错率只有50%,因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了╮(╯﹏╰)╭

  • 奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大。

  • 奇偶校验只能发现错误,但不能纠正错误,也就是说它只能告诉你出错了,但不能告诉你怎么出错了,一旦发现错误,只好重发。

  • 虽然奇偶校验有很多缺点,但因为其使用起来十分简单,故目前仍被广泛使用。

应用:

如何用编程确定一个字节中“1”个数的奇偶性?我们可以利用二进制数相加的特点:

0+0=0、1+0=1、1+1=0

可以看出,如果我们将一个字节的所有位相加

有奇数个“1”的字节的和为1

有偶数个“1”的字节的和为0

由此即可通过编程完成判断。实际应用中,实现方法很多,但这是相对简单的一种,这里不再赘述。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

奇偶校验的概念 的相关文章

  • stm32的HAL库i2c从机实现

    stm32的i2c默认就是slave模式 xff0c 本文基于HAL库实现中断方式的接收和发送 xff0c 首先是初始化gpio和i2c xff0c 代码如下 xff1a I2C HandleTypeDef I2cHandle void H
  • openBLT-系统结构及框架

    openBLT 系统结构及框架 前言1 框架1 1设备层1 2中间件1 2 1 COM1 2 2 BACKDOOR1 2 3 FILE 1 3应用层 前言 openBLT 是开源的小型嵌入式系统bootloader xff0c 目前支持ST
  • 磁力计的基本工作原理

    http www dzsc com data html 2010 11 29 87454 html ST集成传感器方案实现电子罗盘功能
  • Ubuntu(ROS+雷达)修改udev/rules/更改ttyUSB 使端口绑定

    前提 xff1a 1 Linux xff08 Ubuntu xff09 系统 xff0c 本版本为Ubuntu16 04 2 确定USB口可以使用 xff08 拔插U盘看看有没有弹出文件夹窗口 xff09 参考博客 xff1a https
  • CAN总线 标准帧/扩展帧滤波器设置

    在CAN协议里 xff0c 报文的标识符不代表节点的地址 xff0c 而是跟报文的内容相关的 因此 xff0c 发送者以广播的形式把报文发送给所有的接收者 节点在接收报文时 根据标识符 CAN ID 的值决定软件是否需要该报文 xff1b
  • http之 半包 粘包

    短连接 xff1a 连接 gt 传输数据 gt 关闭连接 HTTP是无状态的 xff0c 浏览器和服务器每进行一次HTTP操作 xff0c 就建立一次连接 xff0c 但任务结束就中断连接 也可以这样说 xff1a 短连接是指SOCKET连
  • Ardupilot飞控编译环境搭建

    构建环境 Ardupilot具有完整的开发库 xff0c 其编译代码可以直接下载 xff0c 在Windows上 xff0c 可以利用Cygwin编译器来进行下载并编译 xff0c 对此怒飞垂云的教程中有详细的下载方法 xff1a 飞控固件
  • 转:跳点搜索算法JPS及其优化(万字长文)

    欢迎关注作者git博客 1 引言 寻路算法用途众多 xff0c 例如在游戏和地图中 A 算法已经众所周知 xff0c 对于其优化也是层出不穷 xff0c 然而性能并没有取得突破性进展 本文介绍JPS的效率 多线程 内存 路径优化算法 为了测
  • socket编程——sockaddr_in结构体操作

    socket编程 sockaddr in结构体操作 sockaddr结构体 sockaddr的缺陷 xff1a struct sockaddr 是一个通用地址结构 xff0c 这是为了统一地址结构的表示方法 xff0c 统一接口函数 xff
  • Resource not found: rgbd_launch 解决方案

    Resource not found rgbd launch 解决方案 操作环境问题描述解决方案 操作环境 虚拟机 xff1a VMware 系统版本 xff1a Ubuntu 18 04 ROS版本 xff1a Melodic 摄像头 x
  • ModuleNotFoundError: No module named ‘cv2‘

    ModuleNotFoundError No module named 39 cv2 39 问题描述模块安装模块安装问题解决 问题描述 系统环境 xff1a ubuntu 18 04 操作内容 xff1a 配置DenseFusion运行环境
  • 系统辨识理论及MATLAB仿真——学习笔记(1)

    系统辨识理论及MATLAB仿真学习笔记 xff08 1 xff09 前言目录第1章 绪论1 1 建立数学模型的基本方法1 2 系统辨识的定义1 3 系统辨识的研究目的1 4 数学模型的分类1 5 几种常见的数学模型的数学表示1 6 系统辨识
  • 甚小孔径终端(VSAT)卫星网络拓扑结构及接入方式

    甚小孔径终端 xff08 VSAT xff09 卫星网络拓扑结构及接入方式 文章目录 甚小孔径终端 xff08 VSAT xff09 卫星网络拓扑结构及接入方式前言一 VSAT网络类型1 星型拓扑结构网络2 网状拓扑结构网络 二 VSAT网
  • Ubuntu18.04 界面美化(mac风格)

    Ubuntu mac 主题美化 测试系统 xff1a Ubuntu 18 04 测试时间 xff1a 2022年2月26日 先前准备 安装主题的工具 xff1a GNOME Tweaks sudo apt get update sudo a
  • 搭建github-ssh连接时,Could not resolve hostname github的解决方案(无法ping通github)

    解决无法 ping 通 github com 的问题 测试平台 xff1a Windows 10 测试时间 xff1a 2022年3月4日 问题描述 xff1a 笔者在进行搭建本地 git 时 xff0c 需要通过 ssh 建立与 gith
  • Ubuntu18.04 CoppeliaSim Edu 安装教程 (2022年11月)

    Ubuntu18 04 CoppeliaSim Edu 安装教程 1 软件包下载2 启动 CoppeliaSim3 终端快捷命令 测试平台 xff1a Ubuntu 18 04 测试时间 xff1a 2022年11月10日 本文以 Ubun
  • Ubuntu18.04 安装完成后的开发配置

    Ubuntu18 04 安装完成后的开发配置 1 终端工具2 屏幕录制工具3 屏幕截图工具4 向日葵远程操作与开机自启动设置5 MarkDown笔记工具6 ROS 机器人操作系统安装7 编程开发工具8 机器人仿真环境Gazebo 安装Web
  • Ubuntu 20.04 安装 Latex 并使用 vscode 作为文本编辑器

    Ubuntu 20 04 安装 Latex 并使用 vscode 作为文本编辑器 1 Texlive 下载与安装1 1 镜像文件下载1 2 安装步骤1 3 查看是否安装成功1 4 相关依赖安装 2 安装 windows 字体3 vscode
  • Windows下Keil 4工程默认Keil 5打开的解决办法

    案例背景 xff1a 在安装Keil 4进行51系列单片机学习之后安装Keil 5进阶STM32系列单片机的学习 刚安装完后 xff0c 之前编辑的Keil 4工程还是默认Keil 4打开 xff0c Keil 5的工程默认Keil5打开
  • Python3 利用requests 库进行post携带账号密码请求数据

    span class hljs keyword import span urllib json requests url 61 span class hljs string 39 http 127 0 0 1 8000 account lo

随机推荐

  • Python爬虫 requests使用post请求登录需要验证码的网站

    具体代码为 xff1a import requests span class hljs built in from span bs4 import BeautifulSoup s 61 requests Session get url 61
  • WinSock API网络编程——UDP协议(http://www.impcas.ac.cn/usr/lujun/browse.asp?id=winsock_udp)

    WinSock API网络编程 UDP协议作者 xff1a 陆军 Email xff1a ldlujun 64 163 com 时间 xff1a 2004 11 14UDP协议 xff08 User Datagram Protocol xf
  • Raspberry 静态IP配置

    前言 Raspberry 在使用过程中 xff0c 需要手动设定静态IP地址 xff0c 但是深入下去发现不同的raspberry版本不同 xff0c 设置上也存在差异 etc network interfaces 在之前的文章 Raspb
  • 【硬件】调试经验:串口RS232不通,怎么办

    写作时间 xff1a 2020 07 24 目录 xff1a 1 关键词 2 坑坑坑 xff08 不要跳 xff09 3 小技巧与说明 正文 xff1a 1 关键词 串口 串口助手上位机 usb转232线缆 串口命令 RS232 2 检查点
  • 【Github】git bash无法复制粘贴

    参考教程https www cnblogs com slw0113 p 15602715 html 使用git bash时只能使用手工敲击所有命令 xff0c 非常不方便 1 在屏幕右键打开git bash命令窗口 2 在左上角右键 xff
  • 报错{“msg“:“invalid token“,“code“:401}问题的解决

    报错 msg invalid token code 401 问题的解决 xff1a 解决办法 xff1a 将精确的路由放在最上面 xff0c 模糊的路由放在最下面 xff0c 防止精确的路由被覆盖
  • Android 电池管理系统

    https blog csdn net bhj1119 article details 52947344 Android电池服务的源码结构 Framework base services java com android server Sy
  • eBPF技术介绍

    前言 eBPF起源于linux内核 xff0c 它可以以砂箱程序运行在操作系统内核的特权上下文 xff0c 高效 xff0c 安全 xff0c 易于扩展而不需要修改内核源码或者加载内核模块 操作系统一直是实现观测 xff0c 安全和网络功能
  • eBPF开发工具链

    有几个开发工具链可以帮助开发和管理eBPF程序 它们都满足了用户的不同需求 xff1a bcc BCC是一个框架 xff0c 使用户能够编写嵌入其中的eBPF程序的python程序 该框架主要针对涉及应用程序和系统分析 跟踪的用例 xff0
  • Off-CPU分析

    前言 性能问题可以分为两种类型 xff1a On CPU xff1a 线程花时间在CPU上运行的地方 xff1b Off CPU xff1a 在I O xff0c 锁 xff0c 计数器 xff0c 分页 交换上阻塞等待的时间 Off CP
  • uint8_t / uint16_t / uint32_t /uint64_t数据类型详解

    https blog csdn net bruce 0712 article details 72805903
  • 什么是系统调用?为什么要用系统调用?

    什么是系统调用 Linux内核中设置了一组用于实现各种系统功能的子程序 xff0c 称为系统调用 用户可以通过系统调用命令在自己的应用程序中调用它们 从某种角度来看 xff0c 系统调用和普通的函数调用非常相似 区别仅仅在于 xff0c 系
  • android的surfaceflinger原理学习

    概念 SurfaceFlinger是一个系统服务 xff0c 如 xff1a audioflinger xff0c audiopolicyservice等等 xff0c 系统的主要服务通过这个文章进行了解 xff0c Android的系统服
  • labview界面分隔和自定义窗口大小

    gt gt gt gt gt gt 我的博客目录导航 转自 statemic LabVIEW程序界面的布局 控件的显示效果与监视器是密切相关的 xff0c 因此在程序设计时需要考虑目标监视器的颜色 分辨率等因素 xff0c 并明确运行该应用
  • CAN通信矩阵的理解(CAN报文信号的属性)

    CAN通信矩阵 1 CAN通信矩阵是什么 CAN通信矩阵 xff08 CAN Communication Matrix xff09 通常由整车厂完成定义 xff0c 车辆网络中的各个节点需要遵循该通讯矩阵才能完成信息的交互和共享 我们知道C
  • Android OMX介绍(总括)

    一 OpenMax简介 xff08 缩写为 xff1a OMX xff09 OpenMAX是一个多媒体应用程序的标准 由NVIDIA公司和Khronos 在2006年推出 它是无授权费的 跨平台的C语言程序接口序列 xff0c 这些接口对音
  • 从此以后谁也别说我不懂LDO了

    LDO是个很简单的器件 xff0c 但是我跟客户沟通的过程中 xff0c 发现客户工程师的技术水平参差不齐 xff0c 有的工程师只是follow 别人以前的设计 xff0c 任何原理和设计方法都不懂 xff0c 希望大家看完这篇文章都能成
  • 屏下指纹技术实现方案与原理

    1月24日 xff0c 全球第一台量产的屏幕指纹手机vivo X20 Plus屏幕指纹版正式在北京亮相 据悉 xff0c 该手机屏幕指纹版已经支持支付宝和微信的指纹支付 vivo X20 Plus屏下指纹 xff0c 其原理是利用光电反射技
  • linux系统的休眠与唤醒简介

    系统挂起 xff08 Suspend xff09 是电源管理 xff08 APM amp ACPI xff09 的一个特性 xff0c 给用户带来了很大的方便 Linux在2 6系列核心中对电源管理有了较好的支持 xff0c 下面就谈谈Li
  • 奇偶校验的概念

    奇偶校验 Parity Check 是一种校验代码传输正确性的方法 根据被传输的一组二进制代码的数位中 34 1 34 的个数是奇数或偶数来进行校验 采用奇数的称为奇校验 xff0c 反之 xff0c 称为偶校验 采用何种校验是事先规定好的