📄 bcd.bak
字号:
#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+1]=(hexg%10)*16; /* 高半字节 */
hexg=hexg/10;
dest[i]=hexg%10;
/* 低半字节 */
hexg=hexg/10;
}
return dest;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -