#include
#include
#include
#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;
}
BCD码是输入的吗?
举个例子,输入什么,输出什么?