您的位置:首页 > 其它

读卡器应用函数整理 1.转换金额

2012-02-02 08:54 190 查看
1.转换金额

//读取金额数据

icWrite[0]=0x00; //nad

icWrite[1]=0x40; //pcb

icWrite[2]=5; //len

icWrite[3]=0x00;

icWrite[4]=0xb0;

icWrite[5]=0x86;

icWrite[6]=0x00;

icWrite[7]=0x04;

icWrite[8]=0x00; // init bcc

for(st=0;st<8;st++)

icWrite[8]=icWrite[8]^icWrite[st]; //校验位

if(cpu_protocol(icdev,9,icWrite,icRead)!=0)//按照CPU卡T=1的传输协议向读写器发送命令串

{

printf("\ntransfer err\n");

ic_exit(icdev);

return;

}

printf("\nnad: %02X\n",icRead[0]);

printf("pcb: %02X\n",icRead[1]);

printf("len: %d\n",icRead[2]);

printf("SW1SW2: %02X%02X\n",icRead[icRead[2]+1],icRead[icRead[2]+2]);

printf("Data: ");

for(st=0;st<icRead[2]-2;st++)

{

printf("%02X",icRead[st+3]);

if(icRead[st+3]==0)

{

if(i!=0)

{

i+=1;

a[i]=icRead[st+3];

}

}

else

{

i+=1;

a[i]=icRead[st+3];

}

}

printf("\n");

//十进制显示带小数点的具体金额

for(j=1;j<=i;j++)

{

count+=a[j]*adp(i,j);

}

count=count/100;

h=count;

printf("the balance is: %5.2f\n",h);//printf中小数点左边的数字表示最小字段宽度,右边的表示精度

printf("the balance is: %d\n",count);

ic_exit(icdev);

printf("\n");

int adp(int a, int b)

{

int i;

int c=1;

for(i=b;i<a;i++) c=c*16*16;

return c;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: