多年没和统计报表打交道了,不知现在还存不存在单位法人代码,反正十年前是每个单位,无论是机关、企事业单位还是社会团体,都要求有这个代码。
当作怀旧,贴出这个十多年前C语言函数代码,现临时写了个演示程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*获取单位法人代码校验位*/
charGetLegalPersonCheckCode(char*code)
{
constintValue[]={3,7,9,10,5,8,4,2};
intx,check=0;
for(x=0;x<8;x++)
{
if(code[x]>='0'&&code[x]<='9')
check+=(code[x]-'0')*Value[x];
elseif(code[x]>='a'&&code[x]<='z')
check+=(10+code[x]-'a')*Value[x];
elseif(code[x]>='A'&&code[x]<='Z')
check+=(10+code[x]-'A')*Value[x];
}
check=11-(check%11);
switch(check)
{
case10:
check='X';
break;
case11:
check='0';
break;
default:
check+='0';
}
returncheck;
}
intmain(intargc,char*argv[])
{
charlpCode[10];
printf("请输入要验证的单位法人代码:");
scanf("%s",lpCode);
if(strlen(lpCode)!=9)
printf("输入的单位法人代码位数错误! ");
elseif(GetLegalPersonCheckCode(lpCode)!=lpCode[8])
printf("输入的单位法人代码校验位错误! ");
else
printf("单位法人代码%s正确 ",lpCode);
system("pause");
return0;
}
我是搞统计的,以前又是单位的计算机管理负责人,同统计报表打交道最多,每次各统计专业月报、年报以及各种统计普查时,统计报表上都印有这个代码,代码印刷格式为:XXXXXXXX-X,“-”左边是8位数字代码,右边是1位校验码(0 -- 9或者X),每个代码位都印有一个小方框,真正输入时只输入9位代码,“-”是不输入的。
例子很简单,要求输入一个单位法人代码,然后检查输入的代码长度是否为9,然后调用GetLegalPersonCheckCode函数获取该代码的校验位,并与输入的代码校验码比较。
可能有人注意到我上面说左边是8位数字代码,而函数计算中却有a - z和A - Z等字母,这是因为当初有很多单位来不及从技术监督部门获取单位代码,而各种统计报表又必须要填单位代码,所以,统计部门一般以2位字母打头,后面跟6位数字,组成临时单位代码的缘故。
其实,因为该函数利用8位单位代码计算并返回其校验码,不仅能起到验证单位法人代码的作用,也可用来计算单位法人代码,只不过正式的单位代码只能由技术监督部门审核发放,以保证在全国范围内所有的单位代码都是唯一的,作为统计部门,我们只用它来计算临时单位代码。
分享到:
相关推荐
提供组件机构代码校验函数,可以由外部函数直接调用,返回true或false
校验统一社会信用代码的合法性,是SQL2008的标量函数
C语言实现标准CRC16校验 ,文件包含crc.h 和crc.c,有问题可以 私聊我 q-175-543-7233
oracle统一社会信用代码的校验函数
32位CRC校验c语言代码,参数:内容,长度,种子值,直接调接口即可使用。
社会统一信用代码校验函数(JavaScript)
适用于标准MODBUS通信协议校验,经验证crc16校验吗无误
VS开发,c#语言,BCC校验赋源码,可直接运行。希望有帮助。
CRC16校验C语言程序源码(附完整的可执行的C语言代码).pdf
本人oracle写的标量函数,结果返回0表示校验失败,1表示校验合法。本函数在商业应用中使用多年禁得起考验!
使用http://www.json.org/JSON_checker/中的文件,支持中文。
本代码是用C语言实现的FLASH的1bit纠错,2bit校验ECC算法,可供在做FLASH相关算法的人员进行参考
本人根据GB 32100-2015 法人和其他组织统一社会信用代码编码规则原创,经过测试可以用于商业环境。
使用c语言模拟人工crc校验算法。使用c语言模拟人工crc校验算法。
LRC校验C语言实现,简单的C语言实现LRC获取,让您刚了解LRC
18位身份证和组织机构代码校验ORACLE函数
最新oracle验证统一社会信用代码的函数,0,1代表成功或者失败。不知为什么自己就把积分提上去了。
c语言crc8校验源代码
CRC16_CCITT、CRC16_XMODEM、CRC16_MODBUS、CRC16_MAXIM、CRC16_USB的C语言代码