#include<stdio.h>
void two(int n);
void ten(int n);
void sixteen(int n);
int main()
{
int n;
printf("输入整数:");
scanf("%d",&n);
two(n);
ten(n);
sixteen(n);
return 0;
}
void two(int n)
{
int i = 0;
int s1[100];
while(n != 0)
{
s1[i] = n % 2;
n = n / 2;
i++;
}
printf("2进制:");
for(i = i - 1; i >= 0; i--)
{
printf("%d", s1[i]);
if(i % 4 == 0)
{
printf(" ");
}
}
printf("\n");
}
void ten(int n)
{
int i = 0;
int s1[100];
while(n != 0)
{
s1[i] = n % 10;
n = n / 10;
i++;
}
printf("10进制:");
for(i = i -1; i >= 0; i--)
{
printf("%d",s1[i]);
}
printf("\n");
}
void sixteen(int n)
{
int i = 0, j;
char s1[100];
while(n != 0)
{
switch(n % 16) //十六进制的余数,在>=10时,变为A-F可以用switch,其余相似
{
case 0:s1[i] = '0';break;
case 1:s1[i] = '1';break;
case 2:s1[i] = '2';break;
case 3:s1[i] = '3';break;
case 4:s1[i] = '4';break;
case 5:s1[i] = '5';break;
case 6:s1[i] = '6';break;
case 7:s1[i] = '7';break;
case 8:s1[i] = '8';break;
case 9:s1[i] = '9';break;
case 10:s1[i] = 'A';break;
case 11:s1[i] = 'B';break;
case 12:s1[i] = 'C';break;
case 13:s1[i] = 'D';break;
case 14:s1[i] = 'E';break;
case 15:s1[i] = 'F';break;
}
n = n / 16;
i++;
}
printf("16进制:");
for(i = i -1; i >= 0; i--)
{
printf("%c",s1[i]);
}
printf("\n");
}
<img src="https://img-blog.csdn.net/20161020101944403?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />