BCD码转换 bcd码转换软件

unsigned int ui;//(16位无符号二进制数)
unsigned char uc[5];//(BCD码表示的5位十进制数)

uc[4]=(ui/10000)%10;
uc[3]=(ui/1000)%10;
uc[2]=(ui/100)%10;
uc[1]=(ui/10)%10;
uc[0]=ui%10;


_____________________________________________________________________
今天有人在问我BCD码如何转换成10进制码的问题
其实很简单
BCD 的表示法是 用4个二进制位来表示一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常见的就是CMOS里的时间存放格

式就是BCD码格式,更具体的表示方法大家可以去百度一下就知道了不过其实知道我上面说的就差不多了。
明白了BCD是怎么表示后转换也就容易了,低4位和高4位分别转换然后合并起来就是了!
如15用BCD码表示为 0001 0101
低四位的值就是实现十进制数的低四,高4位就是高四位的值,这样我们有很高效的转换方法
低四位+高四位×10 (上面是2位十进制数的)

用C语言表达一下可能更能明白我上面说的意思
#include <stdio.h>

int main(void)
{

int bcd =0x15;
int dec;

dec =(bcd & 15) +((bcd>>4) * 10);

printf("%dn",dec);
return0;
}

所以实际转换可以定义成一个宏
#define BCDTODEC(bcd)



#include <stdio.h>
#define BCDTODEC(bcd) ((bcd) = ((bcd) & 15) +((bcd)>>4) * 10)
int main(void)
{

int bcd =0x15;
BCDTODEC(bcd);
printf("%dn",bcd);
return0;
}
______________________________________________________________________________________

#define BCD2BIN(val) (((val) & 0x0f) +((val)>>4)*10)
#define BIN2BCD(val) ((((val)/10)<<4)+ (val)%10)


////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:ZH_Data();
//返回参数:有.返回为十进制或十进制BCD码.
//输入参数:State=0 输入为十进制BCD码 输出为十进制.
//输入参数:State=1 输入为十进制,输出为十进制BCD码.
//设计人:wang1jin.
//设计版本:V1.0.
//////////////////////////////////////////////////////////////////////////////////////////////
uint8 ZH_Data(bit State,uint8 Value)
{
if(State==0)//判断工作模式.
{
Value=(Value/16)*10+(Value%16); //把8421BCD码转为十进制
returnValue;//返回;
}
else//把十进制转为8421BCD码;
{
Value=(Value/10)*16+Value%10;//把十进制转为8421BCD码.
returnValue;//返回;
}
}

______________________________________________________________________________________
//16进制转bcd码
unchar HEXBCD2(uncharbcd_data)//hex转为bcd子程序
{
unchar temp;
temp=(bcd_data/16*10+bcd_data%16);
BCD码转换 bcd码转换软件
return temp;
}
unchar BCD2HEX(uncharhex_data)//BCD转为HEX子程序
{
unchar temp;
temp=(hex_data/10*16+hex_data%10);
return temp;
}
______________________________________________________________________________________


long str16to10(unsigned char *s)
{
//s字符串最大为"FFFFFFFF"
//调用示例:
// long lRet;lRet=str16to10("a10"); // --(结果: lRet=2576)
long lRet;
unsigned char ch;

lRet=0;

while(*s)
{
ch=*s;

if ((ch >= '0') &&(ch <= '9')) ch -= '0';
else if ((ch >= 'A')&& (ch <= 'F')) ch-= '7';
else if ((ch >= 'a')&& (ch <= 'f')) ch-= 'W';

//lRet=lRet*16+ch;
lRet=(lRet<<4)+ch;

s ++;
}

return lRet;
}

____________________________________________________________________________________________
sprintf(char,"%x",int);//将10进制转换成16进制
sprintf(char,"%o",int);//将10进制转换成8进制

___________________________________________________________________________________________

  

爱华网本文地址 » http://www.413yy.cn/a/25101015/261139.html

更多阅读

怎样把视频转换成MP4格式 qlv格式怎样转换成mp4

随着手机、MP4等移动终端的流行,MP4视频格式应运而生。由于手机、MP4、iPod、iPhone、PSP、iPad等移动终端对能兼容的视频格式有严格要求,因此要在各大移动终端观看电影视频,对导入的视频就要严格把关,否则轻则播放不流畅,影响观赏效果,重

二维码扫描软件怎么用 固定式二维码扫描器

二维码扫描软件怎么用——简介二维码扫描软件可以分为两种,第一种是手机上面的扫描软件。另外一种是电脑上面的解码器。这里就来为大家一一介绍一下这两种二维码扫描软件的用法!!二维码扫描软件怎么用——工具/原料

MPG转换RMVB完美解决方案 完美解码 rmvb 设置

MPG格式是常用的一种视频格式,其书写又称MPEG,在MPG格式中标准的格式下有无中格式类型:MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。RMVB是一种视频格式,较上一代的RM格式画面更清晰。将MPG转RMVB格式,那么我们可以使用全能视频转换器来

声明:《BCD码转换 bcd码转换软件》为网友哥特式祸水分享!如侵犯到您的合法权益请联系我们删除