精华内容
下载资源
问答
  • 如何计算SL校验码?

    2011-04-25 17:18:00
    如何计算SL校验码?     WCG 110425

    如何计算SL校验码?

     

     

    WCG 110425

    展开全文
  • 身份证校验码计算

    2020-11-12 17:51:01
    最近看一份文档看到身份证规则,觉得很有趣,这里记录一下如何计算校验码 1 身份证编码规则 《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一...

    身份证校验码计算

    最近看一份文档看到身份证规则,觉得很有趣,这里记录一下如何计算校验码

    1 身份证编码规则

    《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
    排列顺序从左至右依次为:

    • 六位数字地址码 (编码对象常住户口所在县(市、旗、区)的行政区划代码,按 GB/T 2260的规定执行),
    • 八位数字出生日期码(表示编码对象出生的年、月、日,按GB/T 7408的规定执行。年、月、日代码之间不用分隔符)
    • 顺序码 (表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数 分配给男性 ,偶数分配给女性。)。
    • 一位数字校验码( 校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码)

    简单举例:
    在这里插入图片描述

    现在去翻了国标文档: GB/T 2260
    翻到四川省广元市市中区 的地区码为510802
    我们就可以人为制造一个身份证号码: 51080219900603052_ 这个身份证号码
    表示 四川省广元市市中区 1990年6月3日出生的 第26位女生 。

    问题来了 那么上诉人为编造的 身份证号码最后一位校验码是多少了呢? 这里得去翻国标 GB 11643-1999

    2 校验码计算

    2.1 校验码计算公式在这里插入图片描述

    校验码计算公式:
    在这里插入图片描述

    2.2 计算思路及代码

    现在把上诉校验码计算公式翻译为JS的代码,
    1 首先将身份证前17位进行加权求和。加权值位表一中的值
    2 对加权求和结果对11取余数
    3 对余数数值按照表2进行映射。

    得到以下代码

    function getCheckCode(originalIDArray){
      const WeightedValue = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]
      const CheckCodeMap = new Map([[0, '1'], [1, '0'], [2, 'X'], [3, '9'], [4, '8'], [5, '7'], [6, '6'], [7, '5'], [8, '4'], [9, '3'], [10, '2']]);
      let sum = 0;
      for (let i = 0; i<WeightedValue.length; i++ ) {
        sum += originalIDArray[i] * WeightedValue[i];
      }
      
      return CheckCodeMap.get(sum % 11);
    }
    
    const originalID = '51080219900603052';
    const originalIDArray = originalID.split('');
    const checkCode = getCheckCode(originalIDArray)
    const ID = originalID + checkCode;
    
    console.log(ID); // 510802199006030524
    
    

    算出来最后一位身份证校验码号码为4

    3 标准文档

    链接: https://pan.baidu.com/s/1k52d6vuMj6ueJdP3VjnhOQ 提取码: ip7i

    展开全文
  • 如何计算CRC校验码

    千次阅读 2014-09-27 21:17:37
    已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC。 M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011 M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010 CRC为: M(x)*x 3+R(x)=1100000+010 =1100010 其原理是:...
    我先给你举个例子: 
    已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC码。 
    M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011 
    M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010 
    CRC码为: M(x)*x 3+R(x)=1100000+010 =1100010 
    其原理是:CRC码一般在k位信息位之后拼接r位校验位生成。编码步骤如下: 
    (1)将待编码的k位信息表示成多项式 M(x)。 
    (2)将 M(x)左移 r 位,得到 M(x)*xr 。 
    (3)用r+1位的生成多项式G(x)去除M(x)*xr 得到余数R(x)。 
    (4)将M(x)*xr 与R(x)作模2加,得到CRC码。
    展开全文
  • 如何计算CRC校验码(循环冗余检验码)

    万次阅读 多人点赞 2017-06-16 13:25:35
    在数据通信领域,CRC(循环冗余检验码)常用的一种查错校验码,它的信息字段和校验字段的长度可以任意选定。它主要是通过对要传输的数据进行多项式计算,然后将得到的结果附在数据帧的后面在进行传输,在收方收到...

    1、什么是CRC校验     

            在数据通信领域,CRC(循环冗余检验码)常用的一种查错校验码,它的信息字段和校验字段的长度可以任意选定。它主要是通过对要传输的数据进行多项式计算,然后将得到的结果附在数据帧的后面在进行传输,在收方收到数据帧后就可以利用CRC码对数据进行检查,那样就可以实现对数据的检错功能。他的实现原理如下:

            (N,K)码就是在K位的信息码后面加上R位的监督码元,整个码长度位N位,(N,K)码一个重要的特点就是整个编码的长度为N位,其中信息字段就是K位,所以校验字段(也叫作监督码元)的长度就是R=N-K位。

            对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*2R),这样C(x)的右边就会空出R位,这就是校验码的位置。用 C(x)*2R 除以生成多项式G(x)得到的余数就是校验码。

    2、如何求解CRC码


            任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。
    下面是一个根据一个给定的生成多项式求CRC码的例子

    假设使用的生成多项式是G(X)=X3+X+1。4位的原始报文为1010,求编码后的报文。
    解:
    1、将生成多项式G(X)=X3+X+1转换成对应的二进制除数1011。
    2、此题生成多项式有4位(R+1)(注意:4位的生成多项式计算所得的校验码为3位,R为校验码位数),要把原始报文C(X)左移3(R)位变成1010 000
    3、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或得到的余位011,所以最终编码为:1010 011



    通过上面的例子我们大概的就了解了如何去计算一个信息字段的CRC校验码,可以把求CRC校验码的步骤总结如下:

    1、将X的最高次幂为R的生成多项式G(X)转换成对应的R+1位二进制数。
    2、将信息码左移R位,相当于对应的信息多项式C(X)*2R
    3、用生成多项式(二进制数)对信息码做除,得到R位的余数(注意:这里的二进制做除法得到的余数其实是模2除法得到的余数,并不等于其对应十进制数做除法得到的余数。)。
    4、将余数拼到信息码左移后空出的位置,得到完整的CRC码

    3、深入理解CRC校验相关概念


    生成多项式

    是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。
    在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接收方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。
    应满足以下条件:
    A、生成多项式的最高位和最低位必须为1。
    B、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。
    C、不同位发生错误时,应该使余数不同。
    D、对余数继续做除,应使余数循环。


    原则

    若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得
    V(x)=A(x)g(x)=xRm(x)+r(x);
    其中: m(x)为K次原始的信息多项式, r(x)为R-1次校验多项式(即CRC校验和),
    g(x)称为生成多项式:
    g(x)=g0+g1x1+ g2x2+...+g(R-1)x(R-1)+gRxR
    发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字


    展开全文
  • 身份证第18位校验码计算规则: 下面代码是javascript的实现; 校验为真返回true;否则返回false function check(id){ var vid = id+''; var flag = false; console.log(id) if(vid.length != 18){ ...
  • 这时候就用到我们奇偶校验码了。奇偶校验码?用来检测数据传输过程是否发生错误的一种检错码分类:奇校验、偶校验(在传输数据前使用哪个校验是规定好的,以确保发送端和接收端用同样的方式进行数据校验)原理是扩大码...
  • 如何简单的计算且通俗的理解CRC码(循环冗余校验码)CRC码的出现的契机什么是模2运算怎么简单的求CRC码 CRC码的出现的契机 CRC(Cyclic Redundancy Check)码即循环冗余校验码 ,在计算机运行及数据传输时,由于种种...
  • 上位机发送的所有数据均为ascii,格式为02 AD 42 XH XL 03(02 41 42 30 33 03)。AD表示仪表地址,XH表示校验高四位,XL表示校验低四位。 请问XH和XL是如何计算的?
  • 简单理解如何用奇偶校验码 例如 数据:11001 用户:A,B 事先决定用奇校验还是偶校验 奇校验: 正确情况下 用户A:发送110010 用户B:收到110010 结果:计算的校验位都为0,所以认为数据传输无异常 错误情况下 用户A:发送...
  • 身份证校验码计算方法 1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2、将这17位数字和系数相乘的结果相加。 ...
  • 奇偶校验码算法 问题陈述: (Problem Statement:) You are getting a stream of numbers (say long type numbers), compute the parity of the numbers. Hypothetically you have to serve a huge scale like 1 ...
  • 详细讲解如何计算ICMP数据包中的校验码,此方法也适用于其他数据包中!
  • 海明校验码——如何求解

    千次阅读 热门讨论 2015-09-14 22:16:27
     在学习计算机组成原理的时候接触到了海明校验码,其实这个东西我们在学习专业课的时候接触过类似的东西, 当再次见到的时候比较熟悉,但是有很多的人对这块的知识比较模糊,不是很清楚,在知道信息位的情况下...
  • 奇偶校验码(计算机组成原理10)

    千次阅读 2020-10-05 13:00:46
    - 校验原理、奇偶校验的相关定义 - 计算机内部如何实现奇偶校验
  • Code128条形是一个非常高密的字母数字条码,能够存储需要的编码数据,它可以编码所有128个ASCII字符,它使用最少的空间。 在Code128符号体系中,每个数据字符编码都是由11个黑或白模块组成,这11个模块由三个条...
  • 记录一下QT中如何实现 ModbusCRC16 校验码计算 #include <QCoreApplication> #include <QDebug> //CRC16计算函数 uint16_t ModbusCRC16(QByteArray senddata) { int len=senddata.size(); uint16_t ...
  • 海明校验码详解

    万次阅读 多人点赞 2018-01-03 17:25:04
    对于原始数据信息位m,计算得出需要的k位校验码如何确定最小的校验位数kk 假设原有信息为mm位,则和校验位加起来长度有m+km+k.校验位数k可以确定 2k2^k 个状态,这些状态中必有一个其所有奇偶测试都是真的,于是
  • k位的校验码可以有2^k个值。显然,其中一个值表示数据是正确的,而剩下的2^k –1个值意味着数据中存在错误,如果能够满足: 2^k–1>=m + k (m + k为编码后的总长度),在理论上k个校验码就可以判断是哪一位(包括信息...
  • CRC校验码

    2018-03-22 11:11:34
    什么是CRC校验码? CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,...
  • 各位大侠好, 现在在做数据上传时,因CRC校验码错误...请问,上面的数据包如何计算才能得到后面的校验码“6840”,“5440”? 我按照算法编程,对上面的包进行了计算,就是得不出“6840”,“5440”。请各位支招。
  • 校验码 - 海明码

    2017-11-10 12:02:40
    海明校验码经常考试当中会考到海明码是个难点。首先需要了解海明码编码的规则,如何编码和计算多少位信息位需要多少个校验位。一个经过海明码编码完成之后那些是位置是校验位那些是信息位。在这种编码体系当中明确...
  • 首部校验码

    2016-10-11 16:59:15
    IP首部校验和的计算主要是两步:按位异或和取反,... 以上是对于发送者来说如何计算校验和的,而对于接收者来说,验证也很简单:1. 对于接收的IP报文头部以16位为单位逐个求和;2. 若结果为1,则校验正确,否则出...
  • 海明校验码——确定校验位

    千次阅读 2017-03-14 10:23:55
    转载:海明校验码–确定校验位计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下首先看下基本的概念 :2^r≥k+r+1 ...
  • ProgramProgramDevelopmentDevelopmentofofC CalculatalculatingingCRC-16CRC-16CyclicCyclicRedundancyRedundancyCheckCheckCodeCode【内容摘要】CRC-16 是检测数据在发送过程中发生错误的常用校验方法,本文通过从...
  • 教你如何计算海明

    千次阅读 2017-08-17 10:27:51
    以下是笔者一节视频课程中的PPT内容,细致而又非常通俗地讲解了海明的编码计算、检测错和纠错原理,如果因为PPT比较简洁看不明白,可结合我的视频来看,本节课程的视频链接如下(可免费观看,我全部课程5折抢购中...
  • 海明校验码

    2015-03-20 23:11:00
     计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下 首先看下基本的概念 : 2^r≥k+r+1 其中r为校验位 ,k为...
  • 假如数据码长度为k,再加上长度为r的校验码,r位的校验码可以表示2^ r种不同情况,那么我们要求2^ r大于k+r这样我们就可以表示出任意出错的数据码位数。 考察数据码:1011 我们规定校验码放在1,2,4,8,16等2的幂...
  • 海明校验码--确定校验位

    千次阅读 2017-08-03 09:29:47
    http://blog.csdn.net/yudandan10/article/details/11878421计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下 首先看...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 267
精华内容 106
关键字:

如何计算校验码