十进制转化为其他进制(C语言)

来源:互联网 发布:维多利亚贝克汉姆知乎 编辑:程序博客网 时间:2024/04/19 12:23
#include<stdio.h>int a[1000];int k=0;void change(int x,int r){    while (x)    {        a[k++]=x%r;        x=x/r;    }}int main(){    int x,r,i;    printf("输入一个十进制数:\n");      scanf("%d",&x);     printf("输入你要转化成的十进制以内进制大小:\n");     scanf("%d",&r);     change(x,r);    for ( i = k-1; i >=0; i--)    {        printf("%d",a[i]);    }    return 0;}/*#include<stdio.h>#include<string.h>void TentoAny(int number,char *str,int digits){       int i=0;    if(digits>16||digits<2)//非2~16进制则直接退出  return ;    while(number)   {   switch(number%digits){ //根据余数的情况做相应处理       case 15:        str[i++]='F';   break;      case 14:        str[i++]='E';   break;      case 13:    str[i++]='D';   break;        case 12:         str[i++]='C';   break;      case 11:        str[i++]='B';   break;       case 10:             str[i++]='A';   break;      default:        str[i++]=number%digits+'0'; break;  }       number=number/digits;   }   str[i]='\0';    strrev(str);//strrev函数定义在string.h中的,是对字符串做逆序处理的函数   //这里需要逆序的原因是因为得到的结果为该进制的逆序}int main(){     int number,i;char str[80];printf("输入一个十进制数:");    scanf("%d",&number);    printf("\n---------2到16进制对应关系----------\n");for(i=2;i<=16;i++)  {   TentoAny(number,str,i); printf("%d转换为%d进制为:%s\n",number,i,str);}   return 0;}*/
0 0
原创粉丝点击