简易的10进制整数进制转换程序,要求支持2进制 8进制 支持16进制 要简单一点的 C语言初学者求助!

2024-10-30 23:58:09
推荐回答(5个)
回答1:

仅仅是输出而已,不是进制转换。

C语言,输出八、16进制形式,都有格式符。

输出2进制,需要按照位,来输出。

下列程序, 即可达到不同进制的输出要求。

#include 

void main(void)

{

    unsigned char xxx = 0, i;

    printf("输入一个十进制数字(0~15): ");

    scanf("%d", &xxx);

    printf("\n十进制形式:  %d. ", xxx);

    printf("\n二进制形式:  ");

    for (i = 0; i < 4; i++)

      if (xxx & (1 << (3 - i))) printf("1");

      else  printf("0");

    printf(".");

    printf("\n八进制形式:  %02o. ", xxx);

    printf("\n16进制形式:  %02X. ", xxx);

 //   getch();

}

在VC中运行的画面如下:

回答2:

哈哈,刚刚帮别人改了一个关于进制的函数
#include
int f(int x,int y);
void main()
{
int a[10],a1,b1,b2,c,b[10],k=0,i,sum=0;
printf("请输入要输入的数和该数的进制和你想要转化的进制");
scanf("%d %d %d",&a1,&b1,&b2);
for(i=0;(c=a1/f(10,i))!=0;i++)
a[i]=c%10;
for(i=0;(c=a1/f(10,i))!=0;i++)
sum+=a[i]*f(10,i);
for(i=0;(c=sum/f(b2,i))!=0;i++)
b[i]=c%b2;
for(i=0;(c=sum/f(b2,i))!=0;i++)
k+=b[i]*f(10,i);
printf("%d\n",k);
}
int f(int x,int y)
{
int j,sum;
sum=1;
for(j=0;j sum=sum*x;
return(sum);
}

回答3:

#include

void main(void)
{ int m,n; //m为输入的十进制数,n为转化的进制;
int b[100];
for(int i=0;i<100;i++) b[i]=0;
printf("输入一个十进制数字: ");
scanf("%d", &m);
printf("\n输入转化后的进制为:");
scanf("%d",&n);
int a=m;
i=0;
do
{
b[i++]=a%n;
a=a/n;

} while (a);

printf("\n十进制数%d转化为%d数的结果为:",m,n);
for(i=i-1;i>=0;i--)
printf("%d",b[i]);

}

回答4:

void to_base_n(unsigned long n, unsigned int base) //将数字n 以base进制形式打印
{
int r;

r = n % base;
if (n >= base)
to_base_n(n / base, base);
putchar('0' + r);

}

回答5:

你好,你是要输入一个10进制的,然后输出其他进制的吗?
C的话那只需要在输出的时候就好了!