用C语言编写一个小程序,请问代码是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:52:20
编写一个小程序,完成以下功能:程序接受用户输入一个十进制整数,并将这个整数的二进制、八进制、十进制、十六进制形式打印到屏幕上,并统计这个整数的有效位个数(最小占用位数)和有效二进制位中0和1的个数,要求界面友好易操作。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main(void)
{
int a,b,c,b0=0,b1=0,d8=0,dx=0,d10=0,d2=0;
scanf("%d",&a);

c=a;
while(c)
{
d8++;
c/=8;
}

c=a;
while(c)
{
dx++;
c/=16;
}

c=a;
while(c)
{
d10++;
c/=10;
}
c=a;
while(c)
{
d2++;
c/=2;
}

printf("%d:%d %x:%d %o:%d ",a,d10,a,dx,a,d8);

b=0;
c=a;
while(c)
{
b=b*2+c%2;
if(c%2)
b1++;
else
b0++;
c/=2;
}
c=b;
a=0;
while(b)
{
a++;
b/=2;
}
while(c)
{
printf("%d",c%2);
c/=2;
}
for(b=0;b<b1+b0-a;b++)
printf("0");
printf(":%d",d2);
printf("\nBinary digitals: 0: