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

C程序 ,别来其他的 谢谢
输入:10 2 表示 输出2进制
输入:10 8 表示输出8进制
输入:10 16 表示输出16 进制
10代表10进制的任意数

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

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

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

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

#include <stdio.h>

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中运行的画面如下:

追问

怪我没把问题描清楚。。。
其实还是转换,就是输入:10 2 表示输入10进制和2进制转换
输入:10 8 表示输入10进制和8进制转换
输入:10 16表示输入10进制和8进制转换
而不是像你这样运行的结果。
例如我输入 12 2 结果输出 1100就完了,不是把8进制和16进制都输出来。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-12
哈哈,刚刚帮别人改了一个关于进制的函数
#include<stdio.h>
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<y;j++)
sum=sum*x;
return(sum);
}追问

跑不起来

第2个回答  推荐于2016-03-06
#include <stdio.h>

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]);

}本回答被提问者采纳
第3个回答  2011-04-10
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);

}
第4个回答  2011-04-10
你好,你是要输入一个10进制的,然后输出其他进制的吗?
C的话那只需要在输出的时候就好了!

简易的10进制整数进制转换程序,要求支持2进制 8进制 支持16进制 要简单...
C语言,输出八、16进制形式,都有格式符。输出2进制,需要按照位,来输出。下列程序, 即可达到不同进制的输出要求。include <stdio.h> void main(void){ unsigned char xxx = 0, i;printf("输入一个十进制数字(0~15): ");scanf("%d", &xxx);printf("\\n十进制形式: %d. ", xxx);pri...

...一个十进制转换成二进制或八进制或十六进制的程序需要怎么打?_百度...
voidmain(){ \/\/进制转换函数的声明 inttransfer(intx);intx;printf("请输入一个十进制数:");scanf("%d",&x);printf("转换成二进制数是:%d\\n",transfer(x));} inttransfer(intx){ intp=1,y=0,yushu;while(1){ yushu=x%2;x\/=2;y+=yushu*p;p*=10;if(x<2){ y+=x*p;break;...

c语言从键盘输入一个十进制数,将其转换为二进制、八进制和十六进制数...
main(){ int i;printf("enter a number");scanf("%d",&i);printf("\\n八进制为%o",i);printf("\\n十六进制为%x",i);}

...个程序可以将十进制、二进制、八进制、十六进制数之间相互转换。 用...
{ int p(int x,int y);int a,x,i,c;char cc;printf("要转换的进制为:\\n");scanf("%d", &a);printf("请输入一个十进制数:\\n");scanf("%d", &x);for(i=1;;i++)if(x\/(int)pow(a,i)==0) break; \/\/找出最大的 a 进制权值 printf("相应的%d进制数为:\\n", a)...

数制之间的转化(2,8,10,16) C语言
void f10(char c[], double m) { printf(" %s 转换成 2进制 = ", c); f(m, 2); putchar('\\n');printf(" %s 转换成 8进制 = ", c); f(m, 8); putchar('\\n');printf(" %s 转换成16进制 = ", c); f(m,16); putchar('\\n');} double fn_10(char c[], int ...

请用一个很简单的C语言程序:十进制转换为二进制。
h"int main(){ int n;int i=0,j;char str[100]={0};char output[100]={0};printf("请输入一个整数:");scanf("%d",&n);while(n){ str[i]=n%2+'0';n=n\/2;i++;} for(j=0;j

用C语言编一个将十进制整数转化为16进制数的程序
int main(){ int a;printf("请输入一个10进制整数:" );scanf( "%d", &a);printf("该数转换为16进制数为: %X\\n",a);return 0;} 详细的转化方法:include <stdio.h> int x[100];int jzzh(int y,int ml){ int i,a;i=ml;x[0]=0;for(a=1;;a++){ if(i!=0){ x[a]...

c语言输入十进制(long),以二、八、十六进制输出的程序
他的算法思想在于:先采用除“base”取余(所有的余数都会小于“base”),然后,再按这些余数的倒序输出就完成了数据的10进制与其它进制的转换。(如果你理解10转二进制,以上话你就能明白)char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E',...

C语言 2进制,8进制,10,进制,16进制的相互转换
在C语言中,进制之间的转换可通过格式化输出与类型转换实现。以下为转换实例:2进制、8进制、10进制、16进制之间转换 1. 从10进制转换为其他进制 - **至2进制**:使用`itoa`函数或`%`运算符 - **至8进制**:通过`printf`与`%o`格式 - **至16进制**:借助`printf`与`%x`或`%X`格式 2. ...

在c语言中用最简单的方法把十进制转化为十六进制
};printf("请输入一个十进制整数:"); scanf("%d",&num); while(num>0) { yushu=num%16; a[i++]=yushu; num=num\/16; } printf("转化为十六进制的数为:0x"); for(i=i-1;i>=0;i--)\/\/倒序输出 {m=a[i];printf("%c",hex[m]); } printf("\\n"); }程序运行结果:...

相似回答