zoukankan      html  css  js  c++  java
  • 任意进制转换 Learner

    任意进制转换

    描述

      求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
    不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

      输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。
    a,b是十进制整数,2 =< a,b <= 16。

      输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

    样例输入:

    15 Aab3 7

    样例输出

    210306
     void conversion( char s[],  long d1, long d2 )
     {
         long  i=0, j, t, num;
         char s2[100];
         char c;
         num = 0;
         for ( i = 0; s[i] != '\0'; i++ )
         {
             if ( s[i] <= '9' && s[i] >= '0' )
                 t = s[i] - '0';
             else t = toupper(s[i]) - 'A' + 10;
             num = num * d1 + t;//先转换为10进制
         }
         i = 0;
         while (true)
         {
             t = num % d2;//一直取余,而后除
             if ( t <= 9 )
                 s2[i] = t + '0';
             else s2[i] = t + 'A' - 10;
             num /= d2;
             if ( num == 0 )
                 break;
             i++;
         }
         for (int k = i; k >=0; k--)
             cout<<s2[k];
         
     }     

    因上求缘,果上努力~~~~ 作者:Learner-,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/12663837.html

  • 相关阅读:
    排序算法——选择排序
    poj1906
    poj1496
    poj1244
    poj1183
    poj1806
    !!!舒尔茨自律神经训练法
    Google Analytics的能与不能
    乔布斯最伟大的贡献是什么
    冥想呼吸
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/12663837.html
Copyright © 2011-2022 走看看