利用C语言 将BCD码转成二进制输出的程序

2025-04-06 14:17:07
推荐回答(3个)
回答1:

#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;
}

回答2:

BCD码是输入的吗?

回答3:

举个例子,输入什么,输出什么?