bcd.c

来自「这是我在我们公司做的C51加油单片机程序」· C语言 代码 · 共 53 行

C
53
字号
#include "reg52.h"
#include <intrins.h>
#include <absacc.h>
#include <string.h>
#include <ctype.h>

typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char uchar;
typedef unsigned long nlong;


ulong BcdToHex(unsigned char *buf,unsigned char length);
uchar * HexToBcd(ulong hexg);

main()
{
     uchar kk[4]={0x23,2,3,4},*bb;
     ulong j;
     j=BcdToHex(kk,2);
     bb=HexToBcd(j);
     j=1;
}
ulong BcdToHex(unsigned char *buf,unsigned char length)
{
	unsigned long xdata tem;
	register unsigned char i;
	tem=0;
	for(i=length;i>0;i--)
        tem=tem*100+(buf[length-i]/16)*10+buf[length-i]%16;
        return tem;
}
/* 无符号十六进制数转为Bcd码(Bcd码低字节在前) */
/* source:Hex数据,len:Hex数据长度(1:字符型;2:整型;4:长整型) */
/* dest:目标地址,length:Bcd码长度 */

uchar * HexToBcd(ulong hexg)
{
	register unsigned char i;
        uchar dest[8];
	for(i=0;i<4;i++)
	{

		dest[i]=(hexg%10)*16;	/* 高半字节 */
        	hexg=hexg/10;
                dest[i+1]=hexg%10;
		/* 低半字节 */
		hexg=hexg/10;
	
	}
        return dest;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?