#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
}
给你一个可以转换任意长度的int org=1212123 /*这个数是要转换的正整数,可以任意长度*/
int bcd[255] /*用于存放bcd码,默认255个位数*/
int i=0,j=0
do{
bcd[i]=org%10
i++
org=org/10
}while(org)
for(j=i-1j>=0j--)
{
printf("%-5d,",bcd[j])
}
c语言程序将正整数转换成8421码(又称BCD码)形式的字符串?怎么理解程序求注释```c
#include
int main()
{
int num//定义一个变量num,用来存储需要转换的正整数
printf("请输入一个正整数:") //提示用户输入需要转换的正整数
scanf("%d",