社区
工具平台和程序库
帖子详情
请问一个字节的数据,如何求起奇偶校验位?
Reeezak
2003-05-15 10:06:34
用C应该怎么写?
不可以位寻址。头疼啊
大哥们帮忙啊
...全文
437
7
打赏
收藏
请问一个字节的数据,如何求起奇偶校验位?
用C应该怎么写? 不可以位寻址。头疼啊 大哥们帮忙啊
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flab_lwq
2003-05-19
打赏
举报
回复
实际上当你选择“奇”校验时,那么每个发送的字节(二进制)中的“1”加上校验位,“1”的总数为奇数,比如你要发送'A','A'字符的ASCII码是0x41,二进制是01000001,"1"的个数为2,这样为了是"1"的总数为奇数,校验位就应该是1.
也就是说,奇校验是保证发出字节和校验位组成的一组0,1数据中的1的个数为奇数.'A'在传输中是以010000011(不考虑停止位)的形式传送的.
偶校验同样道理.
当然问题的关键在于求出字节中"1"的个数.
chen3feng
2003-05-17
打赏
举报
回复
最好用汇编实现,否则慢几十倍
inline bool is_parity(int x)
__asm
{
{
mov eax, x
text eax, eax
setp al
}
}
inline bool is_parity(short x)
{
__asm
{
mov ax, x
text ax, ax
setp al
}
}
inline bool is_parity(char x)
{
__asm
{
mov al, x
text al, ax
setp al
}
}
Reeezak
2003-05-16
打赏
举报
回复
woshinzg,我知道奇偶校验是怎么回事,我问的是怎么用C语言实现
由于那个寄存器不能为寻址,所以这样相加几乎是不可能的
woshinzg
2003-05-16
打赏
举报
回复
如果是奇校验,把一个字节的8个比特位相加如果是1则校验位为0
如果是0则校验位为1
偶校验反之
—————————————————————————————————
因为陌生,所以勇敢,因为距离,所以美丽。
QQ:6785267
Reeezak
2003-05-16
打赏
举报
回复
THX very much!
flab_lwq
2003-05-16
打赏
举报
回复
#include <stdio.h>
void main()
{
//ch is the byte u want to checksum
unsigned char ch = 0xff;
int check_sum = 0, ch_num = ch;
for(int i = 0; i < 8; i++) {
ch_num /= 2;
check_sum += ch_num % 2;
}
if(check_sum % 2) printf("odd");
else printf("even");
}
shishiXP
2003-05-15
打赏
举报
回复
char *p=(char *)字节的地址;
char buf[10];
int temp=atoi(p);
itoa(temp,buf,2);
int total=0;
for(int i=0;buf[i]!='\0';i++)total+=(buf[i]-'0');
if(total%2)cout<<"奇";
else cout<<"偶";
瞎写的!!!!!!!!!!!!!!!!!
:) :)
什么是
奇偶校验
原理?奇校验、偶校验、校验
位
(单比特
奇偶校验
、两维
奇偶校验
(矩阵校验或交叉
奇偶校验
))
奇偶校验
是一种简单且易于实现的错误检测技术。虽然它不能解决所有的错误情况,但其低成本和实用性使它成为许多通信和存储系统的首选错误检测方法。随着技术的发展,更复杂的错误检测和纠正算法被开发出来,但
奇偶校验
仍然是计算机科学教育和初级通信系统中的重要组成部分。
奇偶校验
位
学习理解
一个
字节
一般有8bit,若是需要进行
奇偶校验
需要添加
一个
码元,所以发送接收时是8
位
数据
位
,一
位
校验
位
。
奇偶校验
就是指每次发送接收的每一帧
数据
加上校验码之后1的个数是奇数还是偶数
奇偶校验
码是奇校验码和偶校验码的统称,是一种最基本的检错码。它是由n-1
位
信息元和1
位
校验元组成,可以表示成为(n,n-1)。如果是奇校验码,在附加上
一个
校验元以后,码长为n的码字中“1”的个数为奇数个;如果是偶校验码,在附加上
一个
校验元以后,码长为n的码字中“1”的个数为偶数个。设:如果
一个
偶校验码的码字用A=[an-1,a.
单片机串口分析起始
位
停止
位
奇偶校验
位
串口解析 串口配置 1.波特率 2.停止
位
3.
数据
位
4.
奇偶校验
位
比特率:通讯的频率 停止
位
:可以选择1/1.5/2三个选择
数据
位
:可以选择5/6/7/8四个选择
奇偶校验
位
:可以选择奇校验/偶校验/无
奇偶校验
位
假设我们选择默认配置为:波特率
位
9600,停止
位
为1
数据
位
为8,
奇偶校验
位
为无。那么
一个
数据
的长度=起始
位
(1)+
数据
位
(8)+
奇偶校验
位
(0)+停止
位
(1)。 按照默认的配置我们来计算一下10S能传输多少
字节
的
数据
。 byte = 10*9600/10 = 9600个
字节
。 当然这是
奇偶校验
位
奇偶校验
位
奇偶校验
位
(parity bit)或校验比特(check bit)是
一个
表示给定
位
数的二进制数中1的个数是奇数还是偶数的二进制数。
奇偶校验
位
是最简单的错误检测检测码。
奇偶校验
位
有两种类型:偶校验
位
与奇校验
位
。 如果一组给定
数据
位
中1的个数是奇数,那么偶校验
位
就置为1,从而使得1的个数是偶数。如果给定一组
数据
为
位
中1的个数是偶是,那么奇校验
位
就置为1,使得总的1的个数是奇数。 偶校验
位
...
串口通信中
数据
的
奇偶校验
位
算法
串口通信中
数据
的
奇偶校验
位
算法
奇偶校验
位
是
一个
表示给定
位
数的二进制数中 1 的个数是奇数还是偶数的二进制数。
奇偶校验
位
是最简单的错误检测码。
奇偶校验
位
有两种类型:偶校验
位
与奇校验
位
。如果一组给定
数据
位
中 1 的个数是奇数,那么偶校验
位
就置为 1,从而使得总的 1 的个数是偶数。如果给定一组
数据
位
中 1 的个数是偶数,那么奇校验
位
就置为 1,使得总的 1 的个数是奇数。偶校验实际上是
工具平台和程序库
24,860
社区成员
27,333
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章