zoukankan      html  css  js  c++  java
  • 整数进制转化器(模板):适用于各种进制转换

     1 /*
     2 s[]: 原进制数字,用字符串表示
     3 s2[]: 转换结果,用字符串表示
     4 d1: 原进制数
     5 d2: 需要转换到的进制数
     6 返回值: null
     7 说明:如果需要转化成16进制中,使得结果大于9的显示小写字母(例如显示3e而不要3E,虽然其实是一样的), 
     8 只需要将下面的'A'全换成'a'即可 
     9 */
    10 #include<cstdio>
    11 #include<cmath>
    12 #include<algorithm>
    13 #include <string.h>
    14 #include <iostream>
    15 using namespace std;
    16 void conversion(char s[],char s2[],long d1,long d2)
    17 {
    18     long i,j,t,num;
    19     char c;
    20     num=0;
    21     for (i=0;s[i]!='';i++)
    22         {
    23         if (s[i]<='9'&&s[i]>='0') t=s[i]-'0'; else t=s[i]-'A'+10;
    24         num=num*d1+t;
    25         }
    26     i=0;
    27     while(1)
    28         {
    29         t=num%d2;
    30         if (t<=9) s2[i]=t+'0'; else s2[i]=t+'A'-10;
    31         num/=d2;
    32         if (num==0) break;
    33         i++;
    34         }
    35        
    36       s2[i+1]='';
    37       for(int k=i;k>=0;k--)
    38       printf("%c",s2[k]);  //逆输出   
    39 }
    40 int main()
    41 {
    42     char s[100000],s2[100000];
    43     strcpy(s,"23456");//可以使用用strcpy()函数方便赋值//cin>>s
    44     long d1=8,d2=16;
    45     conversion(s,s2,d1,d2);    
    46     return 0;
    47  } 

     注意:上述模板支持整数间的进制转换,但不支持小数间的进制转换

    文章来源:https://blog.csdn.net/ls158390/article/details/88429156

  • 相关阅读:
    第十二周作业
    十一周作业
    第十周作业
    第九周作业
    2019年春第八周作业
    第五周课程总结&实验报告(三)
    第四周课程总结&实验报告(二)
    第三周课程总结&实验报告(一)
    第二周课程总结
    2019春总结作业
  • 原文地址:https://www.cnblogs.com/xwh-blogs/p/12490194.html
Copyright © 2011-2022 走看看