读卡器应用函数整理 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;
}
//读取金额数据
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;
}
相关文章推荐
- 读卡器应用函数整理 3.将每个十六进制存储的字节转换成ascii字符存储
- 读卡器应用函数整理 2.输出金额到dat文件
- 读卡器应用函数整理 4.将自定义卡号存储到dat文件
- 关于转换大写中文金额-新学的java函数整理
- 将金额转换到大写数字的C#函数
- PB Send()函数应用有关数据整理
- 将数字转换成大写的金额换算函数
- 将金额转换到大写数字的函数
- 数字转换成大写金额的存储过程或函数
- 求小写金额转换成大写金额的函数-js
- [转载]fastreport报表增加自定义函数 小写金额转换为大写
- Math函数应用整理
- vs进行图像处理常用函数整理及应用
- asp.net(vb)实现金额转换成大写的函数
- PB Send()函数应用有关数据整理
- 人民币金额大写 在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误
- 一个将数字转换成金额大写的函数
- c语言文件操作函数应用(1) ——学习整理
- 一个Asp中将小写金额转换为大写的函数
- JS把数字金额转换成中文大写数字的函数