描述: 我国国标〖GB 11643-1999〗中规定:公民身份号码是18位特征组合码,由十七位数字本体码和一位数字校验码组成。...排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。...其校验码(最后一位)计算方法和步骤为: (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和 其中Ai:表示第i位置上的身份证号码数字值...Y 0 1 2 3 4 5 6 7 8 9 10 校验码 1 0 X 9 8 7 6 5 4 3 2 例如:某身份证前17位为11010519491231002 i 1 2 3 4 5 6 7 8...X(大写) 请按上面所述步骤编程,输入一个二代身份证号,检查该身份证是否正确。
以前开发的时候用到过,来源于网络,有需要的可以粘过去直接用 /** * 判断身份证号码是否符合格式....= 18) { errorInfo = "身份证号码长度应该为15位或18位。"...+ IDStr.substring(6, 15); } if (isNumeric(Ai) == false) { errorInfo = "身份证...if (isDataFormat(strYear + "-" + strMonth + "-" + strDay) == false) { errorInfo = "身份证生日无效...(IDStr.length() == 18) { if (Ai.equals(IDStr) == false) { errorInfo = "身份证无效
身份证校验 该函数能够检查身份证号码是否正确 CREATE DEFINER=`neo`@`%` FUNCTION `check_id_number`(`idnumber` CHAR(18)) RETURNS...; IF right(idnumber,1) = verify THEN set status = 'true'; END IF; RETURN status; END 首先我们使用正确身份证号码进行测试...| +--------------------------------------------+ 1 row in set, 1 warning (0.00 sec) 随便改译为数,校验失败返回
这道题很坑。注意这里的权重是直接乘上去,一开始我乘的是百分之几,死活不知道哪里有问题,后来把一百乘上去,就对了。
* yyyymmdd: 出生年(四位年)月日,如:19910215 * xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女 * y: 校验码...,那么第十八位将用X来代替 * 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 ) * i为身份证号码1...17 位; Y_P为校验码Y所在校验码数组位置...idCard.substring(i,i+1)*idCardWi[i]; } var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置...则说明校验码是10,身份证号码最后一位应该是X if(idCardMod==2){ if(idCardLast...; }else{ alert("身份证号码错误!")
之前在做项目的时候遇到了需要校验身份证号码,最初始的想法就是校验一下是否数字还有就是校验长度,后来想到有的身份证号的最末尾数字是X,于是又加入了一层判断末尾数为X的判断。...写好以后总是感觉不对劲,因为之前写校验手机号的就能校验一下大致的真伪,但是现在写的身份证校验根本就算不上是校验。...于是就在网上搜了一下,发现身份证号码是有规律和算法的,下面来看一下 根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成...15位的身份证编码首先把出生年扩展为4位,简单的就是增加一个19或18,这样就包含了所有1800-1999年出生的人; 2000年后出生的肯定都是18位的了没有这个烦恼,至于1800年前出生的,那啥那时应该还没身份证号这个东东... 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1 有了上面的算法就产生了如何利用js来校验身份证号码的算法了
第十八位表示校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,校验码如果出现数字10,就用X来代替,详情参考下方计算方法。 其中第一代身份证号码为15位。...年份两位数字表示,没有校验码。...前六位详情请参考省市县地区代码 X是罗马字符表示数字10,罗马字符(1-12):Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、Ⅹ、Ⅺ、Ⅻ……,详情请参考罗马字符 中国居民身份证校验码算法 步骤如下: 将身份证号码前面的...其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。 通过上面计算得知如果余数是3,第18位的校验码就是9。如果余数是2那么对应的校验码就是X,X实际是罗马数字10。...所以,可以判定这是一个正确的身份证号码。 未经允许不得转载:肥猫博客 » 身份证号校验规则
iCard = converCharToInt(cArr); int iSum17 = getPowerSum(iCard); // 获取校验位...converCharToInt(cArr); int iSum17 = getPowerSum(iCard); // 获取校验位...true : false; } /** * 验证中国香港身份证号码(存在Bug,部份特殊身份证无法检查) * * 身份证前2位为英文字符,如果只出现一个英文字符则表示第一位是空格...,对应数字58 前2位英文字符A-Z分别对应数字10-35 * 最后一位校验码为0-9的数字加上字符"A","A"代表10 * * * 将身份证号码全部转换为数字... * * @param iSum * @return 校验位 */ public static String getCheckCode18(int iSum
百度一搜就能搜到很多身份证校验的例子,这个是最近做项目参考百度文库的demo修改后的 一,js: //身份验证 function checkIdCard(idCard){ var sexId..., "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!")...9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式 } if (ereg.test(idCard)) {//测试出生日期的合法性 //计算校验位...idcard_array[9]) * 3; Y = S % 11; M = "F"; JYM = "10X98765432"; M = JYM.substr(Y, 1); //判断校验位
1. crc8校验接口 static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size ) { uint8_t crc = 0; uint8...printf("crc %x\r\n",crc); return 0; } 运行: root@ubuntu:/home/smbshare/crc8# gcc -o crc crc8.c
int isdigit(int c) { return (c >= '0' && c <= '9'); } //校验出生日期 日期格式 YYYYMMDD如"19870912..." /* 身份证15位转18位原理:身份证中的年份补全,即:第六、七位之间增加“1”“9”(目前大多数是20世纪出身的),现在身份证号码位数是17位。...而这个数就是最后一位身份证号码。...*/ /*************************************************** * 函 数 名: Chk18PaperId * * 函数功能: 校验18位身份证号码...if( checkCityCode(sPaperId) ) { return -3; } //校验出生日期 //验证最末的校验码
https://blog.csdn.net/wzy0623/article/details/53893238 身份证号码格式校验是很多系统在数据集成时的一个常见需求,我们以18位身份证为例...,使用一个Hive查询实现身份证号码的合法性验证。...该查询结果是所有不合规的身份证号码。按以下身份证号码的定义规则建立查询。 身份证18位分别代表的含义,从左到右方分别表示: 1-2 省级行政区代码。 3-4 地级行政区划分代码。...18 校验码,如果是0-9则用0-9表示,如果是10则用X(罗马数字10)表示。 身份证校验码的计算方法: 将前面的身份证号码17位数分别乘以不同的系数。...首先判断号码长度和省份代码,然后利用Hive的正则表达式匹配函数对整个号码做逐位判断,最后检查校验位是否正确。
导读 : 这篇文章主要讲解一下C语言函数的一些基本知识。 前言:函数的概念 C语言中的函数又常常被称为子程序,是用来完成某项特定的工作的一段代码。...从函数的定义角度:我们可以把函数分为库函数和自定义函数 一,库函数: 库函数是由C语言编译系统提供的,已经有一定功能的,我们只需在程序前包含有该函数原型的头文件就可以直接使用这些函数。...("yeah"); // printf就是C语言提供的有打印功能的库函数,不需要我们自己定义 } 寻找C中的库函数及其有关的头文件的网址(C/C++官方的链接): http://zh.cppreference.com...2,实参列表中的参数(即实参)可以是变量,常量和表达式 3,实参之间用逗号隔开 4,在C语言中,出了main函数,其余的函数调用前要有函数声明(原型) 函数声明 ret_type name(形式参数...C语言中的函数之间都是平行的,不分上下级。
一、函数的概念 数学中我们见过函数的概念,例如y=kx+b,k和b都是常数,给任意一个x就可以得到y 而C语言也引入了函数(function)这个概念,C语言中的函数就是一个完成某项特定任务的一小段代码...因为C语言的程序是由无数个小的函数组合而成的,所以我们也把函数叫做子程序。...而在C语言中存在这样两种类型的函数: 库函数:现成的,可以直接使用的函数 自定义函数:根据实际需要自己设计的函数 二、库函数 2.1 标准库和头文件 1、C语言只是规定了使用的语法规则 2、但C语言不提供库函数的...3、不过C语言的国际标准ANSI C规定了一些库函数的各种信息 比如说scanf:名字,参数,返回类型,函数的功能………… 4、而C语言的编译器厂商根据这些规定来实现这些函数 比如微软——MSVC——...比如memcpy函数在C语言标准中规定的是拷贝空间不重叠的内存,而memmove函数在C语言中规定的是拷贝空间重叠的内存。
C语言strstr函数 查找字符串的函数,语法规则char *strstr( const char *string, const char *strCharSet )用于查找字符串strCharSet...; } else { printf("%s\n", ret1); } return 0; } 创建一个my_strstr函数模拟实现查找字符串功能 定义两个字符arr3和arr4,用一个...; } else { printf("%s\n", ret2); } return 0; } 接下来写my_strstr函数,断言str1&&str2不为空,并且创建指针cp、s1和s2,...cp指针指向str1,s1指向cp,根据strstr函数都功能,首先s1指向‘a’,s2指向‘b’ 如果s1与s2不相等,cp++,也就是cp指向‘b’,s1指向cp。...这时再次进行循环对比s1和s2是否相同 ,但是当s2指向‘c’时,s1指向‘b’,此时s1与s2不相等,退出循环,cp++,重新进行循环。
函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 程序例: #include <
c语言中fread函数 C语言中的fread()函数 (fread() function in C) Prototype: 原型: size_t fread(void *buffer, size_t...Return type: size_t 返回类型: size_t Use of function: 使用功能: The prototype of the function fread() is: 函数...在文件处理中,通过fread()函数 ,我们从输入流文件名到名为buffer的数组读取大小为长度的对象的计数 。 它返回从文件中读取的对象数。...C语言中的fread()示例 (fread() example in C) #include #include int main(){ FILE.../fread-function-in-c-language-with-example.aspx c语言中fread函数 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
需要封装两个函数,单片机端调用函数对这段数据进行和校验,封装校验值,然后上位机收到数据之后验证 校验和,校验数据是否传输正确。...,并确保上位机端能够解析它 // sendByte(checksum); // 发送校验和 } 以上代码中,calculateChecksum 函数用于计算数据的校验和,将每个数据字节相加并返回校验和值...sendDataWithChecksum 函数用于在发送数据之前计算校验和,并将校验和发送给上位机。...,数据传输错误 // 进行相应的处理... } } 在上位机端,verifyChecksum 函数用于验证校验和是否与接收到的校验和相匹配。...receiveDataWithChecksum 函数用于接收数据及校验和,并调用 verifyChecksum 函数进行验证。如果校验通过,则数据传输正确;否则,数据传输错误。
二、示例代码 以下C语言代码演示如何获取一段数据的CRC校验值: #include #include // CRC校验函数 uint16_t crc16(uint8...calculateCRC 函数是对 crc16 的封装,用于调用CRC校验函数并返回校验结果。...在 main 函数中,通过调用 calculateCRC 函数来计算给定数据的CRC校验值,并将结果打印输出。...代码中的CRC校验函数和封装函数是基于无符号8位字节和无符号16位整数的数据类型进行计算的。 三、案例:数据校验 场景:在单片机通信里,单片机需要向上位机发送一段数据。...需要封装两个函数,单片机端调用函数对这段数据进行CRC校验,封装校验值,然后上位机收到数据之后验证CRC,校验数据是否传输正确。
C语言中:fread是一个函数。从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0。...下面我们来看看c语言fread函数的用法。 fread()函数—- Reads data from a stream.
领取专属 10元无门槛券
手把手带您无忧上云