1. int ASC2BCD(const char* szASC,byte* szBDC)
  2.  
    {
  3.  
    int szASCLen=strlen(szASC);
  4.  
    byte * bpBCD = new byte[szASCLen/2];
  5.  
    int nss=0,nOu=0;
  6.  
    for (int x=szASCLen-1;x>=0;x--)
  7.  
    {
  8.  
    //取出字符串中的一个数值
  9.  
    char char_1=*(szASC+x);
  10.  
    //取出BCD码
  11.  
    int nBDC;
  12.  
    if (char_1 != '.') nBDC=(char_1 & 0xF);
  13.  
    else nBDC=14;
  14.  
     
  15.  
    if ((++nOu)&0x01)
  16.  
    bpBCD[nss]=(nBDC << 4);
  17.  
    else
  18.  
    bpBCD[nss++] += nBDC;
  19.  
     
  20.  
    }
  21.  
    int nBit=0;
  22.  
    if (nOu%2==0) nBit=nOu/2-1;
  23.  
    else nBit=nOu/2;
  24.  
    for (int y=0;y<=nOu/2;y++)
  25.  
    {
  26.  
    szBDC[y]=(bpBCD[nBit-y] << 4);
  27.  
    szBDC[y]+=(bpBCD[nBit-y] >> 4);
  28.  
    }
  29.  
    return nBit;
  30.  
     
  31.  
    // memcpy(szBDC,bpBCD,sizeof(bpBCD)*2);
  32.  
    }
  1.  
    void CDotTestDlg::OnButton1()
  2.  
    {
  3.  
    char szTest[]={"123456789123456789.789"} ;
  4.  
     
  5.  
    int s=strlen(szTest);
  6.  
     
  7.  
    byte * szAn=new byte[s/2];
  8.  
    int w=ASC2BCD(szTest,szAn);
  9.  
    for(int x=0;x<=w;)
  10.  
    TRACE("%x ",szAn[x++]);
  11.  
    }

事例:
输出:12 34 56 78 91 23 45 67 89 e7 89

最新文章

  1. C#最齐全的上传图片方法。
  2. 经典ASP.NET MVC3.0入门详解
  3. 常用PHP框架功能对比表
  4. 各种数据库使用JDBC连接的方式
  5. 安卓SDK Manager自动管理各种包
  6. xcode 不值钱的动画UIButton
  7. 统一横轴墨卡托投影(UTM)
  8. [渣译文] SignalR 2.0 系列: 支持的平台
  9. 在vim编辑器中,删除操作
  10. 查询页面checkbox使用
  11. Linux_服务器_07_ 将用户设置为管理员
  12. mybatis学习一
  13. 20160215.CCPP体系详解(0025天)
  14. Github Page 绑定域名
  15. PLSQL:orecal,tnsname简介
  16. Clinet/Server在工作线程中刷新页面数据的方法
  17. 常用的OO设计原则
  18. CocoaPod 问题(I)
  19. Java模板引擎之freemarker简介
  20. Ubuntu下ClickHouse安装

热门文章

  1. Sql server不同数据类型间拼接(+)
  2. MathType可以编辑带圈乘号吗
  3. MathType可以在Word、PPT中插入矩阵吗
  4. 关于JS中的constructor与prototype{转}
  5. java必备——经典的Hibernate
  6. PhoneGap 第一个程序
  7. Lisp语言简介
  8. 如何利用jQuery检查浏览器是否是IE6-8
  9. hibernate中inverse作用
  10. mysql死锁-非主键索引更新引起的死锁