第18位校验和是可以直接算出来的,不需要额外的常数。
int IC18_CRC(char *number) {
int i, s=0;
for(i=0; i<17; i++) {
if(!isdigit(number[i])) return -1;
s+=(number[16-i]-'0')*(2<<i);
}
return (12-(s%11))%11;
}
【 在 mOk@smth.org (唐伯虎の新婚之夜) 的大作中提到: 】
: 说有用就有用说没用就没用
: 不过有时候有的人需要的时候想算都算不出来
: :)
: 【 在 ieagerly (#define weiweiami[3]="PIG") 的大作中提到: 】
: : 这个有什么用啊?
--
FROM bbs.nju.edu.cn