扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Decimal=bcd4;先取bcd码的高位,因为整个BCD码表示数不会超过99,所以定义成uchar就完全可以了。 return(Decimal=Decimal*10+(bcd=0x0F)),就是高位乘10加上原来数的低位,这就转成10进制数了。
站在用户的角度思考问题,与客户深入沟通,找到驻马店网站设计与驻马店网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖驻马店地区。
#includestdio.h
#includestring.h
int main()
{
char a[20],b[5];
int i,result = 0,k = 1,j = 0;
printf("输入一个二进制数:\n");
gets(a);
for(i = strlen(a)-1;i = 0;i --)
{
if(a[i] == '1') result += 1 (k-1); //如果是1,用1*位权
if(k == 4 || i == 0) //每四位计算一次结果(result)。
//如果到了最高位(i==0)不足四位(比如100 0000),也计算
{
switch(result)
{
case 10: b[j++]='A';break; //大于等于十转化成字母
case 11: b[j++]='B';break;
case 12: b[j++]='C';break;
case 13: b[j++]='D';break;
case 14: b[j++]='E';break;
case 15: b[j++]='F';break;
default: b[j++]=result + '0';break;
}
result = 0; //结果清零
k = 0; //表示位权的K清零
}
k ++; // 初始位权为1
}
b[j] = '\0';
printf("结果是:\n");
for(i = strlen(b)-1;i = 0;i --)
printf("%c",b[i]);
printf("\n");
return 0;
}
void HextoBCD(u8 *pBuff,u8 len) //十六进制转为BCD码
{
u8 i,temp;
for(i=0;ilen;i++)
{
temp=pBuff[i]/10;
time[i]=pBuff[i]%10+temp*16;
}
}
#include stdio.h
#include stdlib.h
#include string.h
#define INPUT_BCD_MAX_LENGTH 10
int main(void)
{
//
char bcd[ INPUT_BCD_MAX_LENGTH ];
char *bin = NULL;
char t_bin[ 6 ];
int i, j, q, r, t, bcd_len, bin_len;
printf( "Please enter the decimal code: " );
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 ] = '\0';
strrev( t_bin );
strcat( bin, t_bin );
}
printf( "BCD coded decimal:\n%s\n", bin );
free( bin );
bin = NULL;
system("pause");
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流