zoukankan      html  css  js  c++  java
  • 练习系列 8、m进制转n进制(任意进制转换)

    /*!
    \author LiuBao
    \date 2011/4/10
    \brief m进制转n进制,主流实现方式
    */
    #include <stdio.h>
     
    /*!
    m进制(数字)字符串转为n进制字符串。(先由m进制转为10进制,再由10进制转为n进制)
    \param dest 转换完毕的n进制字符串
    \param n 目的进制数(十六进制填16、二进制填2等)
    \param src 初始m进制字符串
    \param m 初始进制数,与目的进制数表示方法相同
    \warning 初始m进制字符以10进制表示若超过int表示范围,结果未定义;且转换为n进制需要的字符个数未知。
    */
    void m2n(char *dest, unsigned int n, const char *src, unsigned int m)
    {
        char ch, *p = dest - 1;
        unsigned int i = 0;
     
        /* m进制字符串src转为10进制数i */
        while(*src) i = i * m + *src++ - '0';
     
        /* 辗转相除得出逆序的n进制表示在dest */
        while(i) *dest++ = i % n + '0', i /= n;
     
        /* 在dest写入结尾符 */
        *dest = '\0';
     
        /* 逆序字符串 */
        while(++p < --dest)
        {
            ch = *dest;
            *dest = *p;
            *p = ch;
        }
    }
     
    int main()
    {
        char result[100];
     
        m2n(result, 10, "56", 16);
        printf(result);
     
        return 0;
    }
  • 相关阅读:
    卡特兰数
    割点和桥
    子序列(超级水)
    react 进行时
    又开启react之路
    关于特殊字体
    react 组件传值
    git 的安装和项目建立
    ES6 let and const
    js封装的一行半显示省略号(字数自由控制)
  • 原文地址:https://www.cnblogs.com/codingmylife/p/2011817.html
Copyright © 2011-2022 走看看