日期:2014-05-18 浏览次数:20851 次
int GetLHCardno(const char *Buff,char *sSim) { unsigned char Bit23=0; int i=0; const char *pSim=Buff; sSim[0]='1'; unsigned char ucSim[4]; memcpy(ucSim,pSim,4); //如果第7位为1,则加上1000b if(ucSim[0]& 0x80) { Bit23+=(1<<3); } //去掉第7位 ucSim[0]&=0x7f; if(ucSim[0]>99) { //不符合 sSim[0]=0; return 0; }else { sSim[3]=ucSim[0]/10+'0'; sSim[4]=ucSim[0]%10+'0'; } //如果第7位为1,则加上0100b if(ucSim[1]& 0x80) { Bit23+=(1<<2); } ucSim[1]&=0x7f; if(ucSim[1]>99) { //不符合 sSim[0]=0; return 0; }else { sSim[5]=ucSim[1]/10+'0'; sSim[6]=ucSim[1]%10+'0'; } //如果第7位为1,则加上0010b if(ucSim[2]& 0x80) { Bit23+=(1<<1); } ucSim[2]&=0x7f; if(ucSim[2]>99) { //不符合 sSim[0]=0; return 0; }else { sSim[7]=ucSim[2]/10+'0'; sSim[8]=ucSim[2]%10+'0'; } //如果第7位为1,则加上0001b if(ucSim[3]& 0x80) { Bit23+=(1<<0); } ucSim[3]&=0x7f; if(ucSim[3]>99) { //不符合 sSim[0]=0; return 0; }else { sSim[9]=ucSim[3]/10+'0'; sSim[10]=ucSim[3]%10+'0'; } sSim[1]=Bit23/10+'3'; sSim[2]=Bit23%10+'0'; sSim[11]=0; return 1; }
private int GetLHCardno(char[] Buff, char[] sSim) { byte Bit23 = 0; int i = 0; char[] pSim = Buff; sSim[0] = '1'; byte[] ucSim = new byte[4]; Array.Copy(pSim, ucSim, 4); //如果第7位为1,则加上1000b if ((ucSim[0] & 0x80) > 0) { Bit23 += (1 << 3); } //去掉第7位 ucSim[0] &= 0x7f; if (ucSim[0] > 99) { //不符合 sSim[0] = '0'; return 0; } else { sSim[3] = (char)(ucSim[0] / 10 + '0'); sSim[4] = (char)(ucSim[0] % 10 + '0'); } //如果第7位为1,则加上0100b if ((ucSim[1] & 0x80) > 0) { Bit23 += (1 << 2); } ucSim[1] &= 0x7f; if (ucSim[1] > 99) { //不符合 sSim[0] = '0'; return 0; } else { sSim[5] = (char)(ucSim[1] / 10 + '0'); sSim[6] = (char)(ucSim[1] % 10 + '0'); } //如果第7位为1,则加上0010b if ((ucSim[2] & 0x80) > 0) { Bit23 += (1 << 1); } ucSim[2] &= 0x7f; if (ucSim[2] > 99) { //不符合 sSim[0] = '0'; return 0; } else { sSim[7] = (char)(ucSim[2] / 10 + '0'); sSim[8] = (char)(ucSim[2] % 10 + '0'); } //如果第7位为1,则加上0001b if ((ucSim[3] & 0x80) > 0) { Bit23 += (1 << 0); } ucSim[3] &= 0x7f; if (ucSim[3] > 99) { //不符合 sSim[0] = '0'; return 0; } else { sSim[9] = (char)(ucSim[3] / 10 + '0'); sSim[10] = (char)(ucSim[3] % 10 + '0'); } sSim[1] = (char)(Bit23 / 10