- #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");
- }
进制转换
最新推荐文章于 2023-07-12 19:19:11 发布