c语言bcd
发布时间: 2021-03-17 14:33:38
『壹』 c语言中怎么把16进制转换成bcd码
void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码
{
u8 i,temp;
for(i=0;i<len;i++)
{
temp=pBuff[i]/10;
time[i]=pBuff[i]%10+temp*16;
}
}
『贰』 8421BCD码在c语言中的表示
楼上个哥们确信这个是一种二进制表示方法?据我浅薄的计算机知识了解:好像2进制好像只有0和1吧?这个16进制的代码……当然你可以在变量声明时直接定义
int n=138550221;
这样就行了,在输出时采用%X输出;
你可以直接用计算器计算这个16进制数所对应的10进制数
『叁』 c语言bcd码转十进制
不知道我的理解对不对,这个问题,就是把一个整数还原成16进制数的表示方式,版而这个十六权进制数实际上表示的就是十进制数,所以我们只要把输入的数转换成十六进制表示就行了,但是有一个问题,其实需要注意的就是输入的时候10-15
其实是不能输入了,因为刚好就是A-F,所以不妨让输入值>=16
<=15
对于这个范围的数
其实只要两步就行了,第一,除以16取余数,对应的是各位上的数,除以16取整数商,对应的就是十位数,应该这样就可以
void
main(){
int
a;
cin>>a;
if(a<16||a>153)cout<<"不符合输入规则"<<endl;
else{
int
c=a%16;
int
b=a/16;
int
abc=
b*10+c;
cout<<abc<<endl;
}
}
『肆』 利用C语言 将BCD码转成二进制输出的程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineINPUT_BCD_MAX_LENGTH10
intmain(void)
{
//
charbcd[INPUT_BCD_MAX_LENGTH];
char*bin=NULL;
chart_bin[6];
inti,j,q,r,t,bcd_len,bin_len;
printf("Pleaseenterthedecimalcode:");
scanf("%s",bcd);
bcd_len=strlen(bcd);
bin_len=bcd_len*6+1;
bin=(char*)malloc(bin_len);
memset(bin,0,bcd_len*6+1);
for(i=0;i<bcd_len;i++)
{
/*把字符转换为数字*/
q=bcd[i]-'0';
//将每个十进制转换为四位二进制
for(j=0;j<4;j++)
{
t=q/2;
r=q%2;
q=t;
if(q==0&&r!=1)
{
t_bin[j]='0';
}
else
{
//把数字转换为字符
t_bin[j]=r+'0';
}
}
t_bin[j]='';
t_bin[j+1]='