已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本人用过的十六进制、BCD码之间的转换C程序,还有十进制的,可以参考使用,#include #include / / /功能:十进制转十六进制 / /输入:int dec 待转换的十进制数据 / int length 转换后的十六进制数据长度 / /输出:unsigned char *hex 转换后的十六进制数据 / /返回:0 success / /思路:原理同十六进制转十进制 / int DectoHex(int dec, unsigned char *hex, int length) int i; for(i=length-1; i=0; i-) hexi = (dec%256)&0xFF; dec /= 256; return 0; / / /功能:二进制取反 / /输入:const unsigned char *src 二进制数据 / int length 待转换的二进制数据长度 / /输出:unsigned char *dst 取反后的二进制数据 / /返回:0 success / / int convert(unsigned char *dst, const unsigned char *src, int length) int i; for(i=0; ilength; i+) dsti = srci0xFF; return 0; / / /功能:十六进制转为十进制 / /输入:const unsigned char *hex 待转换的十六进制数据 / int length 十六进制数据长度 / /输出: / /返回:int rslt 转换后的十进制数据 / /思路:十六进制每个字符位所表示的十进制数的范围是0 255,进制为256 / 左移8位(8)等价乘以256 / / unsigned long HextoDec(const unsigned char *hex, int length) int i; unsigned long rslt = 0; for(i=0; ilength; i+) rslt += (unsigned long)(hexi)(8*(length-1-i); return rslt; / / /功能:求权 / /输入:int base 进制基数 / int times 权级数 / /输出: / /返回:unsigned long 当前数据位的权 / / unsigned long power(int base, int times) int i; unsigned long rslt = 1; for(i=0; itimes; i+) rslt *= base; return rslt; / / /功能:BCD转10进制 / /输入:const unsigned char *bcd 待转换的BCD码 / int length BCD码数据长度 / /输出: / /返回:unsigned long 当前数据位的权 / /思路:压缩BCD码一个字符所表示的十进制数据范围为0 99,进制为100 / 先求每个字符所表示的十进制值,然后乘以权 / unsigned long BCDtoDec(const unsigned char *bcd, int length) int i, tmp; unsigned long dec = 0; for(i=0; i4)&0x0F)*10 + (bcdi&0x0F); dec += tmp * power(100, length-1-i); return dec; / / /功能:十进制转BCD码 / /输入:int Dec 待转换的十进制数据 / int length BCD码数据长度 / /输出:unsigned char *Bcd 转换后的BCD码 / /返回:0 success / /思路:原理同BCD码转十进制 / / int DectoBCD(int Dec, unsigned char *Bcd, int length) int i; int temp; for(i=length-1; i=0; i-) temp = Dec%100; Bcdi = (temp/10)4) + (temp%10) & 0x0F); Dec /= 100; return 0; int main() register int i; unsigned char tmp_bff12 = ; /十六进制转十进制 unsigned char HEX4 = 0x34, 0xFE, 0x3E, 0xFF; unsigned long dec_hex = 0; dec_hex = HextoDec(HEX, 4); printf(dec_hex = %dn, dec_hex); /十进制转十六进制 DectoHex(dec_hex, tmp_bff, 4); for(i=0; i5; i+) printf(tmp_bff%d = 0x%02Xn,i, tmp_bffi); /BCD码转十进制 unsigned long dec_bcd = 0; unsigned char BCD4 = 0x98, 0x23, 0x45, 0x78; dec_bcd = BCDtoDec(BCD, 4); printf(dec_bcd = %dn, dec_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成本管控理念在科室管理中的渗透路径
- 成本管控与医院品牌建设路径
- 疫情期间护理师相关政策与规范解读培训
- 常见骨折类型及现场急救要点
- 高血压 β 受体阻滞剂案例分析课件
- 边缘计算与分布式AI架构探索
- 医学自身炎症性疾病流行病学案例教学课件
- 护理管理高效课件与资源包
- 患者自付费用与医院成本优化
- 家庭参与在艾滋病护理中的角色与实践
- 隆鼻护理查房
- 食品安全管理员考试题库及答案(2025版)
- 2025新《食品安全法》解读及案例分析讲座课件
- 团队协作效能评估工具
- 瓜子二手车保卖合同(标准版)
- 边际贡献培训课件
- 至爱梵高课件
- DB11-T 808-2020 市政基础设施工程资料管理规程
- 消防排烟系统安装施工方案
- 2025年初级新媒体运营技能考核模拟题及答案详解
- 某市美术馆建设项目可行性研究报告
评论
0/150
提交评论