首页 > 编程知识 正文

奇偶校验码的经典例子,垂直奇偶校验码怎么算

时间:2023-05-04 08:08:50 阅读:154520 作者:4542

想直接看代码的人请点击这里!

输入字符串,对各个字符进行奇偶校验,最后输出校验后的二进制数,例如“3”(输出: 10110011 )。

输入描述:

输入包含字符串,字符串的长度不超过100。

输出描述:

可能有多个测试数据,但针对各个数据,

对于字符串中的每个字符,输出每个标题进行奇偶校验的数量,每个字符校验的结果占一行。

输入:

3

3a

输出:

10110011

10110011

01100001

题目解析:

我们知道在网络数据的传输中可能会出现很多问题。 为了避免接收到错误的数据而进行错误的操作,收到数据时,我们往往会进行一系列的检查工作。 “奇偶校验”是最简单的错误检测代码。

奇偶校验有奇校验、偶校验两种。

如果一组数据比特中第一个的数量为奇数,则奇偶校验比特被设置为1,使得总数的第一个的数量为偶数;

这里以奇偶校验为例。 奇偶校验与奇偶校验相似。

奇校验:如果一个数据比特组中的第一个数为偶数,则奇偶校验比特被设置为1,并且整个第一个数保持为奇数。

举例解释:

数据(1的个数)奇检0000 0011(2)2) 000000113358 www.Sina.com/0000001003358 www.Sina.com/0111111111 (7) 00000011113358 ww.000000

知道奇偶校验位后,不知道应该在哪里添加奇偶校验位,所以有必要审查主题。 在这个问题中,以逐字符进行操作为例

3的奇检查输出为10110011

a的奇检查输出为01100001

字符3的ASCII代码的十进制数为: 51,并转换为二进制数0011 0011

字符a的ASCII代码的十进制数为: 97,转换后的二进制数为0110 0001

ASCII代码使用七位二进制数字(剩下的一位二进制数字为0 )来表示所有大小写、数字0到9以及标点符号。

总之,这里的字符用与ACSII码对应的十进制变换为二进制进行奇偶校验,最高位的奇偶校验比特进行奇偶校验。

代码/*1.将输入的字符串转换为字符数组。 验证字符数组中的所有字符。 2 .逐字符检查a .获得其二进制串b。 将该二进制文件中1的个数c. 1的个数设为奇数个,将高位设为0; 的个数为偶数个,高位为1*/import java.util.*; public class main { publicstaticvoidmain (string [ ] args ) scannersc=newscanner ) system.in; while(sc.Hasnext () ) ({ String str=sc.next ); Jicheck(str.Tochararray ) ); } publicstaticvoidjicheck (char [ ] arrs ) { int[] result=new int[8]; //保存二进制序列for (inti=0; i arrs.length; I ) { int one=0x01; int count=0; //保留二进制序列中1的个数//得到该二进制序列int index=7; wile(index0) result[index]=((ARRS[I]one )==0)? 0 : 1; if(result[index]==1)计数; one=1; 索引- -; //偶数个1,高位1; 奇数个1,高位为0result[0]=(count%2==1)? 0 : 1; //输出for(intk=0; k 8; k ) {system.out.print(result[k]; } System.out.println (; }}在本地IDEA上运行:

牛客网在线OJ :

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。