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

上传人:罗晋 文档编号:10827469 上传时间:2021-06-06 格式:DOC 页数:6 大小:31KB
返回 下载 相关 举报
十进制,十六进制,BCD码相互转换C程序.doc_第1页
第1页 / 共6页
十进制,十六进制,BCD码相互转换C程序.doc_第2页
第2页 / 共6页
十进制,十六进制,BCD码相互转换C程序.doc_第3页
第3页 / 共6页
十进制,十六进制,BCD码相互转换C程序.doc_第4页
第4页 / 共6页
十进制,十六进制,BCD码相互转换C程序.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《十进制,十六进制,BCD码相互转换C程序.doc》由会员分享,可在线阅读,更多相关《十进制,十六进制,BCD码相互转换C程序.doc(6页珍藏版)》请在三一文库上搜索。

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)&0xF

2、F; 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; / / /功能:十六进制转为十进制

3、/ /输入: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)

4、(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 l

5、ength 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; / /

6、 /功能:十进制转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; retu

7、rn 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_bcd); /十进制转BCD码 DectoBCD(dec_bcd, tmp_bff, 4); for(i=0; i5; i+) printf(tmp_bff%d = 0x%02Xn, i, tmp_bffi); getchar();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


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