6938|3

6366

帖子

4918

TA的资源

版主

楼主
 

单片机C语言的十六进制(HEX)转BCD码程序 [复制链接]

本帖最后由 tiankai001 于 2018-3-23 11:08 编辑



此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处





说明:本程序分别列举了单字节HEX码转换为BCD型数据;2字节HEX码转换为BCD型数据;4字节HEX码转换为BCD型数据的的方法。
  1. void HEXtoBCDData(void)

  2. {

  3. unsigned char ucHEXdata[10] = {0},ucBCDdata[10] = {0};

  4. unsigned int uiHEXdata = 0;

  5. unsigned long int ulHEXdata = 0;


  6. //[color=#00ff][size=4]单字节HEX码转换为BCD型数据[/size][/color]
  7. ucHEXdata[0] = 0x63; //十进制为99

  8. ucBCDdata[0] = (ucHEXdata[0]/10)*0x10 + (ucHEXdata[0]%10);



  9. //ucBCDdata[0]=99

  10. ucHEXdata[0] = 0xf5; //十进制为245

  11. ucHEXdata[1] = ucHEXdata[0]/100;

  12. ucHEXdata[2] = ucHEXdata[0]%100;

  13. ucBCDdata[0] = ucHEXdata[1];

  14. ucBCDdata[1] = (ucHEXdata[2]/10)*0x10 + (ucHEXdata[2]%10);

  15. //ucBCDdata[1]=2,ucBCDdata[0]=45


  16. //[color=#00ff][size=4]2字节HEX码转换为BCD型数据[/size][/color]

  17. uiHEXdata = 0xfff5; //十进制为65525

  18. ucHEXdata[1] = uiHEXdata%100;

  19. ucBCDdata[0] = (ucHEXdata[1]/10)*0x10 + (ucHEXdata[1]%10);

  20. uiHEXdata = uiHEXdata/100;

  21. ucHEXdata[2] = uiHEXdata%100;

  22. ucBCDdata[1] = (ucHEXdata[2]/10)*0x10 + (ucHEXdata[2]%10);

  23. uiHEXdata = uiHEXdata/100;

  24. ucHEXdata[3] = uiHEXdata%100;

  25. ucBCDdata[2] = (ucHEXdata[3]/10)*0x10 + (ucHEXdata[3]%10);

  26. //ucBCDdata[2]=6,ucBCDdata[1]=55,ucBCDdata[0]=25


  27. //[color=#00ff][size=4]4字节HEX码转换为BCD型数据[/size][/color]

  28. ulHEXdata = 0xfffffff5; //十进制为4294967285

  29. ucHEXdata[1] = ulHEXdata%100;

  30. ucBCDdata[0] = (ucHEXdata[1]/10)*0x10 + (ucHEXdata[1]%10);

  31. ulHEXdata = ulHEXdata/100;

  32. ucHEXdata[2] = ulHEXdata%100;

  33. ucBCDdata[1] = (ucHEXdata[2]/10)*0x10 + (ucHEXdata[2]%10);

  34. ulHEXdata = ulHEXdata/100;

  35. ucHEXdata[3] = ulHEXdata%100;

  36. ucBCDdata[2] = (ucHEXdata[3]/10)*0x10 + (ucHEXdata[3]%10);

  37. ulHEXdata = ulHEXdata/100;

  38. ucHEXdata[4] = ulHEXdata%100;

  39. ucBCDdata[3] = (ucHEXdata[4]/10)*0x10 + (ucHEXdata[4]%10);

  40. ulHEXdata = ulHEXdata/100;

  41. ucHEXdata[5] = ulHEXdata%100;

  42. ucBCDdata[4] = (ucHEXdata[5]/10)*0x10 + (ucHEXdata[5]%10);

  43. //ucBCDdata[4]=42,ucBCDdata[3]=94,

  44. //ucBCDdata[2]=96,ucBCDdata[1]=72,ucBCDdata[0]=85

  45. ulHEXdata = 0xfffffff4; //十进制为42 94 96 72 84

  46. for(int i=0;i<5;i++)

  47. {

  48. ucHEXdata[i]=ulHEXdata%100;

  49. ulHEXdata=ulHEXdata/100;

  50. ucBCDdata[i]=(ucHEXdata[i]/10)*0x10+ucHEXdata[i]%10;

  51. }

  52. //ucBCDdata[4]=42,ucBCDdata[3]=94,

  53. //ucBCDdata[2]=96,ucBCDdata[1]=72,ucBCDdata[0]=84

  54. }
复制代码




此帖出自编程基础论坛

最新回复

期待啊  详情 回复 发表于 2018-3-23 14:16
点赞 关注
 

回复
举报

1903

帖子

0

TA的资源

版主

沙发
 
兄弟,不错啊,分享些有用的小程序片段,多谢了,已经拷贝,留着备用了
此帖出自编程基础论坛

点评

感谢支持,回头我再分享一些  详情 回复 发表于 2018-3-23 14:05
 
 
 

回复

6366

帖子

4918

TA的资源

版主

板凳
 
star_66666 发表于 2018-3-23 13:01
兄弟,不错啊,分享些有用的小程序片段,多谢了,已经拷贝,留着备用了

感谢支持,回头我再分享一些
此帖出自编程基础论坛
 
 
 

回复

1903

帖子

0

TA的资源

版主

4
 
期待啊
此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表