1、HEX与BCD格式相互转换算法

// hex格式转bcd格式
unsigned char HexToBcd(unsigned char hexData)
{unsigned char bcdData;bcdData = ((hexData / 10) << 4) + (hexData % 10);return bcdData;
}//bcd格式转hex格式
unsigned char BcdToHex(unsigned char bcdData)
{   unsigned char hexData;  hexData = (bcdData >> 4) * 10 + (bcdData & 0x0F);return hexData;
}

2、HEX与ASCII格式相互转换算法

#include <string.h>// ascii转hex格式
char AsciiToHex(unsigned char * pAscii, unsigned char * pHex, int nLen)
{int nHexLen = nLen / 2;unsigned char Nibble[2] = {0};int i = 0;int j = 0;if (nLen % 2){return 1;}for (i = 0; i < nHexLen; i ++){Nibble[0] = *pAscii ++;       Nibble[1] = *pAscii ++;for (j = 0; j < 2; j ++){if (Nibble[j] <= 'F' && Nibble[j] >= 'A')Nibble[j] = Nibble[j] - 'A' + 10;else if (Nibble[j] <= 'f' && Nibble[j] >= 'a')Nibble[j] = Nibble[j] - 'a' + 10;else if (Nibble[j] >= '0' && Nibble[j] <= '9')Nibble [j] = Nibble[j] - '0';elsereturn 1;}// Set the high nibblepHex[i] = Nibble[0] << 4;//Set the low nibblepHex[i] |= Nibble[1];  }return 0;
}// hex转ascii格式
unsigned char *HexToAscii(unsigned char *pHexStr,unsigned char *pAscStr,uint32_t Len)
{char Nibble[2];unsigned char Buffer[2048];int i = 0;int j = 0;for(i = 0; i < Len; i++){Nibble[0] = pHexStr[i] >> 4 & 0X0F;Nibble[1] = pHexStr[i] & 0x0F;for(j = 0; j < 2; j++){if(Nibble[j] < 10){Nibble[j] = Nibble[j] + 0x30;}else if(Nibble[j] < 16){Nibble[j] = Nibble[j] - 10 + 'A';}else{return 0;}}memcpy(Buffer + i * 2, Nibble, 2);}Buffer[2 * Len] = 0x00;memcpy(pAscStr, Buffer, 2 * Len);pAscStr[2 * Len] = 0x00;return pAscStr;
}

3、HEX与DEC格式转换

// dec转hex
void DectoHex(int dec, unsigned char *hex, int length)
{ for(int i=length-1; i>=0; i--) { hex[i] = (dec%256)&0xFF; dec /= 256; }
}// hex转dec
unsigned long HextoDec(const unsigned char *hex, int length)
{ unsigned long rslt = 0; for(int i=0; i<length; i++) { rslt += (unsigned long)(hex[i]) << (8 * (length - 1 - i)); } return rslt;
}

HEX转BCD ,HEX转ASCII,HEX转DEC 算法合集 | C语言实现相关推荐

  1. ASCII HEX BIN DIG进制转换工具页

    ASCII  HEX BIN DIG进制转换工具页 http://www.ab126.com/goju/1711.html

  2. HEX和BCD相互转换

    //BCD转HEX uint8_t BCD_HEX(uint8_t bytVal) {     uint8_t  bytTemp;     bytTemp = (bytVal & 0xf0) ...

  3. hex文件格式解析_玩转Hex文件

    00 关于Hex Hex文件格式(本文讲的是Intel Hex)是好多好多年以前定义的格式,解析这文件的工具网上搜出来的也是一大摞一大摞的.记住,我们就别瞎折腾自己写一个了哦.我们要学会站在巨人的肩膀 ...

  4. mysql hex 和 c_什么是MySQL HEX()函数,它与CONV()函数有何不同?

    实际上,HEX()函数将十进制或字符串值转换为十六进制值.转换后,MySQL返回该十六进制值的字符串表示形式. 语法HEX(Num or Str) 众所周知,HEX()函数可以转换数字或字符串,因此语 ...

  5. BCD码和ASCII码的相互转换

    BCD码和ASCII码的相互转换 最近遇到一个问题就是将BCD码和ASCII码互换的问题,题目如下: 两位BCD数以压缩形式存入30H单元,用汇编语言实现将这两个BCD码变为ASCII码,并且保存在4 ...

  6. 16进制,BCD码,ASCII转换

    十六进制 ASCII码 BCD码 字符名 0x30 048 0b0000 0 0x31 049 0b0001 1 0x32 050 0b0010 2 0x33 051 0b0011 3 0x34 05 ...

  7. 简述二进制码、十进制码、BCD码、十六进制码转换的算法

    进制转换 简述二进制码.十进制码.BCD码.十六进制码转换的算法 把四字节 BCD 码 5287 转换为十六进制码 14A7H 简述二进制码.十进制码.BCD码.十六进制码转换的算法 ①二进制转十进制 ...

  8. php ascii hex编码

    /*** 将类似 \x30\x31\x32\x33\ 这类字符转换成 10进制的字符串* 过程: 以上为例 30,31,32,33 都是16进制* 将他们先转为10进制然后再用ascii码来换成字符* ...

  9. android 16进制转字符串乱码,HEX(16进制)转ascii 乱码

    满意答案 下表列出了字符集中的 0 - 127. 代码 字符 代码 字符 代码 字符 代码 字符 0 32 [空格] 64 @ 96 ` 1 33 ! 65 A 97 a 2 34 " 66 ...

最新文章

  1. 重磅推荐!机器学习|深度学习|自然语言处理 书籍/课程/资料/资源大分享!
  2. 浅谈SAP CRM开发——基本业务概念
  3. NeurIPS 2021 | 图上不均衡表示学习新视野:基于拓扑结构的不均衡学习
  4. 通过JS如何获取IP地址
  5. 2007年上半年软件测试_洪恩教育成功登陆纽交所,上市首日大涨超33%!成2020年首家美股上市的中国教育公司...
  6. Struts原理与实践(2)
  7. 搭建FastDFS分布式文件存储系统教程
  8. 在玩客云或树莓派上通过ffmpeg将视频推流到直播平台
  9. 60-200-070-使用-命令-MySQL慢查询日志
  10. office365安装文件_Microsoft 365(原Office 365)离线下载安装教程
  11. Java使用OpenCV3.2实现视频读取与播放
  12. 【MySQL】—入门介绍
  13. 微信支付2.0版本,更换参数即可使用
  14. 域控服务器可以加几个辅域,如何搭建AD域控的辅域控(20200927213255).docx
  15. java抽象类中的变量修饰符_菜鸟整理的三个权限修饰符与接口、抽象类的总结...
  16. 前端算法js:跳格子游戏
  17. 前端实现在线预览、编辑Office文档(vue版)
  18. DIY自己的超级PE
  19. 2023年 DevOps 七大趋势
  20. 装机U盘制作教程(图文并茂)

热门文章

  1. GDAL ogr2ogr 转换mif 为sqlite
  2. 量化交易系列【4】高频函数:rolling与expanding用法
  3. 【Android笔记】Android 使用高德SDK获取定位
  4. 直击用户大脑——用户研究新方法(眼动与脑电数据分析)
  5. Codeforces711C 【DP】
  6. _getch() 和 getch() 及 _T()
  7. 可汗学院金融学(一)
  8. Linux虚拟主机与Windows虚拟主机之间有什么区别
  9. Eclipse导出JavaDoc中文乱码问题解决
  10. TypeError: XXX is read-only