ASC转换BCD,ASC2BCD(转)
2024-09-27 09:09:15
- int ASC2BCD(const char* szASC,byte* szBDC)
- {
- int szASCLen=strlen(szASC);
- byte * bpBCD = new byte[szASCLen/2];
- int nss=0,nOu=0;
- for (int x=szASCLen-1;x>=0;x--)
- {
- //取出字符串中的一个数值
- char char_1=*(szASC+x);
- //取出BCD码
- int nBDC;
- if (char_1 != '.') nBDC=(char_1 & 0xF);
- else nBDC=14;
- if ((++nOu)&0x01)
- bpBCD[nss]=(nBDC << 4);
- else
- bpBCD[nss++] += nBDC;
- }
- int nBit=0;
- if (nOu%2==0) nBit=nOu/2-1;
- else nBit=nOu/2;
- for (int y=0;y<=nOu/2;y++)
- {
- szBDC[y]=(bpBCD[nBit-y] << 4);
- szBDC[y]+=(bpBCD[nBit-y] >> 4);
- }
- return nBit;
- // memcpy(szBDC,bpBCD,sizeof(bpBCD)*2);
- }
- void CDotTestDlg::OnButton1()
- {
- char szTest[]={"123456789123456789.789"} ;
- int s=strlen(szTest);
- byte * szAn=new byte[s/2];
- int w=ASC2BCD(szTest,szAn);
- for(int x=0;x<=w;)
- TRACE("%x ",szAn[x++]);
- }
事例:
输出:12 34 56 78 91 23 45 67 89 e7 89
最新文章
- C#最齐全的上传图片方法。
- 经典ASP.NET MVC3.0入门详解
- 常用PHP框架功能对比表
- 各种数据库使用JDBC连接的方式
- 安卓SDK Manager自动管理各种包
- xcode 不值钱的动画UIButton
- 统一横轴墨卡托投影(UTM)
- [渣译文] SignalR 2.0 系列: 支持的平台
- 在vim编辑器中,删除操作
- 查询页面checkbox使用
- Linux_服务器_07_ 将用户设置为管理员
- mybatis学习一
- 20160215.CCPP体系详解(0025天)
- Github Page 绑定域名
- PLSQL:orecal,tnsname简介
- Clinet/Server在工作线程中刷新页面数据的方法
- 常用的OO设计原则
- CocoaPod 问题(I)
- Java模板引擎之freemarker简介
- Ubuntu下ClickHouse安装