十进制转换为二进制 八进制 ——用栈实现

数制转换有很多方法本文用的是用栈来实现

栈有先进后出的特性利用这个特性可以实现将目标数取模的值存放在栈中最后一次出栈就可以得到转换好的数

void NumberConvert(int num ,int dest)
{
    if (2 == dest)
    {
        stack<int> s;
        while (num)
        {
            int n = num % 2;
            s.push(n);
            num /= 2;
        }

        while (!s.empty())
        {
            cout << s.top();
            s.pop();
        }
        cout << endl;
    }
    else if (8 == dest)
    {
        stack<int> s;
        while (num)
        {
            int n = num % 8;
            s.push(n);
            num /= 8;
        }

        while (!s.empty())
        {
            cout << s.top();
            s.pop();
        }
        cout << endl;
    }
    else
        return;
}

你可能感兴趣的:(C++,栈应用举例)