首页 > 编程知识 正文

二进制代码的奇校验位怎么求,ascii码奇偶校验码

时间:2023-05-04 20:56:49 阅读:154513 作者:2423

文章目录检查代码术语奇偶校验java代码

校验码

当计算机系统在运行时,为了保证数据在传输过程中正确,一个是提高硬件电路的可靠性,另一个是提高代码的校验能力,包括错误检测和纠错。 通常使用校验码的方法来检查发送的数据是否有误。 其基本思想是将可能出现数据的编码分为合法编码和错误编码两种。 合法的编码被用于传输数据,并且错误编码是不应该发生在数据中的编码。 通过合理设计的错误代码和编码规则,使数据在传输过程中出现错误时变为错误代码,可以检测接收到的数据中是否存在错误。

术语码字在编码系统中合法编码称为码字。

码距是指编码系统中任意两种合法编码之间至少有一些二进制比特不同。 例如,如果合法编码为11,00,则代码间隔为2,因为11和00之间至少有两个二进制位不同。

奇偶校验是一种简单有效的校验方法。 该方法通过将奇偶校验位增加一个位用于编码而使编码中的第一个数为奇数或偶数,码节距为2。 奇检查时,可以检测奇数位错误的代码,但无法检测偶数位错误的代码。 也就是说,在奇数为1的合法代码中发生奇数位的错误,导致1的个数不是奇数,从而检测出问题。

奇偶校验表:

奇偶校验位根据数据位中的1的个数是否是奇数来确定奇偶校验位是0或1。 如果数据位的第一个数为偶数,则奇偶校验位补充1以使整个编码的第一个数为奇数。

偶校验图:

奇偶校验比特根据数据位中1的数目是否是偶数确定奇偶校验比特是0还是1。 当数据位1的个数为奇数时,奇偶校验位增补1以使整个编码的1的个数为偶数,当数据位的1的个数为偶数时,奇偶校验位增补0以使奇偶校验位保持偶数。

java代码公共类奇偶校验{/* * *奇偶校验* * @param checkBytes对需要校验的字节数组* @param full checkBytes的所有字节累计进行奇偶校验。 true-全部; false-如果有任何字节不通过奇偶校验,则返回false。 * @return是*/publicstaticbooleanevennumbercheck (byte [ ] checkbytes,boolean full ) returnparitycheck ) ) check bytes、 布尔型(returnparitycheck (check )/* *奇偶校验* * @param checkBytes需要检查的字节数组* @param full checkBytes的所有字节累计值在巴黎true-全部; false-如果有任何字节不通过奇偶校验,则返回false。 * @return是*/publicstaticbooleanoddnumbercheck (byte [ ] checkbytes,boolean full ) returnparitycheck ) ) check bytes,tes theck } /** *奇偶校验* * @param checkBytes需要检查的字节数组* @param odd是否进行了奇检查。 true-check,false-偶校验* @param full checkBytes的所有字节累计执行奇偶校验。 true-全部; false-如果有任何字节不通过奇偶校验,则返回false。 * @return为*/publicstaticbooleanparitycheck (byte [ ] check bytes,boolean odd,boolean full ) { byte checkMask=0x1; int oddSum=0; int byteSize=8; //for (bytecheckbyte : check bytes ) for ) intI=0; i byteSize; I ) if () checkbyteIcheckmask )==1) { oddSum; }if (! 完全() if (! (odd==isodd(oddsum ) ) ) { return false; } oddSum=0; } }返回! full|||odd==isodd(oddsum ); } /** *确定传入的整数是否为奇数* * @param checkInt检查整数* @return true-奇数; false-偶数*/publicstaticbooleanisodd (longcheckint ) { boolean isOddNumber=false; byte checkMask=0x1; if((checkintcheckmask )==1) /通过检查最后一位是否为1来确定是否为奇数。 //1的位数为奇数isOddNumber=true; } return isOddNumber; } publicstaticvoidmain (string [ ] args ) { String bs1='01101011 '; byteB1=(byte ) integer.parseint (bs1,2 ); byte[] checkBytes=new byte[]{b1}; System.out.println (校验码: ' bs1 '奇校验: ' oddnumbercheck(checkbytes,false ); //奇数检查System.out.println (校验码: " bs1 "偶数检查: " evennumbercheck(checkbytes,false ) "//偶数检查}

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