欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    十进制,十六进制,BCD码相互转换C程序.doc

    • 资源ID:10827469       资源大小:31KB        全文页数:6页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    十进制,十六进制,BCD码相互转换C程序.doc

    本人用过的十六进制、BCD码之间的转换C程序,还有十进制的,可以参考使用,#include <stdio.h> #include <string.h> / / /功能:十进制转十六进制 / /输入: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; i<length; 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; i<length; 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; i<times; 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; i<length; i+) tmp = (bcdi>>4)&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; i<5; 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_bcd); /十进制转BCD码 DectoBCD(dec_bcd, tmp_bff, 4); for(i=0; i<5; i+) printf("tmp_bff%d = 0x%02Xn", i, tmp_bffi); getchar();

    注意事项

    本文(十进制,十六进制,BCD码相互转换C程序.doc)为本站会员(罗晋)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开