将整数转换为10进制、2进制、16进制的数字串

来源:互联网 发布:写一个数组去重 编辑:程序博客网 时间:2024/05/18 20:09
#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="http://img.blog.csdn.net/20161020101944403?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

0 0
原创粉丝点击