C语言如何把转换进制数前面的0去掉呢?

来源:百度知道 编辑:UC知道 时间:2024/07/07 06:51:56
#define N 20
#include <stdio.h>

void main()
{

int a[N],b,c,i;
printf("十进数为:");

scanf("%d",&b);
c=b;
printf("直接输出十六禁止数为%x",c);
printf("\n");
printf("二禁止数为:");

for(i=0;i<N;i++)
{
a[i]=b%2;
b=b/2;
}
for(i=19;i>=0;i--)
printf("%d",a[i]);
printf("\n");
printf("转换的十六禁止数为:");

for(i=0;i<N;i++)
{
a[i]=c%16;
c=c/16;
}
for(i=19;i>=0;i--)
if(a[i]>=10)
printf("%c",a[i]+55);
else

printf("%d",a[i]);

printf("\n");

}
=================================================================
里面都有0啊 怎么能才把前面的0去掉呢

#define N 20
#include <stdio.h>

void main()
{

int a[N],b,c,i=0,j;
printf("十进数为:");

scanf("%d",&b);
c=b;
printf("直接输出十六进制数为%x",c);
printf("\n");
printf("二进制数为:");

while(b) //不用for循环,用while循环,直到b=0退出循环
{
a[i]=b%2;
b=b/2;
i++;
}
for(j=i-1;j>=0;j--)//输出时借助上面用到的i,这样就不会输出多余的
printf("%d",a[j]);
printf("\n");
printf("转换的十六进制数为:");

i=0;//为了上面用到i不影响下面,置0
while(c)
{
a[i]=c%16; //输出十六进制改法同上咯
c=c/16;
i++;
}
for(j=i-1;j>=0;j--)
{if(a[j]>=10)
printf("%c",a[j]+55);
else

printf("%d",a[j]); }

printf("\n");

}

不懂在线交谈哦!

void main()
{
char popo;
int a[N],b,c,i=0,j;
printf("十进数为:"