int check_zzjgm(char *in_data)
{
int right[] = {3, 7, 9, 10, 5, 8, 4, 2};
int dwTmp = 0;
int i = 0;
int sum = 0;
int index = 0;
char C9 = 0;
if(9 != strlen(in_data) && 10 != strlen(in_data))
{
return -1;
}
for(i=0; i<8; i++)
{
if('A' <= in_data[i] && 'Z' >= in_data[i])
{
dwTmp = (in_data[i] - 'A' + 10) * right[i]; /* A=10 B=11 ... Z=35 */
}
else if('0' <= in_data[i] && '9' >= in_data[i])
{
dwTmp = (in_data[i] - '0') * right[i];
}
else
{
return -1;
}
sum += dwTmp;
}
switch(index = 11 - sum % 11)
{
case 10: C9 = 'X'; break;
case 11: C9 = '0'; break;
default: C9 = '0' + index; break;
}
/* printf("in_data=%s C9=%c\n", in_data, C9); */
return (C9 != in_data[ strlen(in_data) - 1]) ? -1 : 0;
}
组织机构号 校验算法
最新推荐文章于 2022-09-30 11:23:51 发布

9677

被折叠的 条评论
为什么被折叠?



