C++ 进制转换

刷题——进制转换 

将十进制的整数转换成其他进制的整数

由于十六进制的数值带有字符的,所以返回的值为字符串。

        /* 进制转换
        * @param M int整型 给定整数
        * @param N int整型 转换到的进制
        * @return string字符串
        */
        string solve(int M, int N)
        {
            std::string str;//存储结果
            char alph[] = "0123456789ABCDEF";//字母表
            for (int i = abs(M), o = 0, tail = 0; i >= 1; str.push_back(alph[tail]))
            {
                o = i;
                i = i / N;//得到模数,也就是高位值的和
                tail = o - i * N;//得到余数,也就是当前位的值
            }
            if (M < 0) str.push_back('-');//如果是负数,在前面加负号
            std::reverse(str.begin(), str.end());//由于当前数字是相反的,于是将字符串
            return str;
        }

 

posted @ 2021-06-23 15:13  mshentai  阅读(157)  评论(0编辑  收藏  举报