仅仅是输出而已,不是进制转换。
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中运行的画面如下:
哈哈,刚刚帮别人改了一个关于进制的函数
#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
return(sum);
}
#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]);
}
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);
}
你好,你是要输入一个10进制的,然后输出其他进制的吗?
C的话那只需要在输出的时候就好了!