进制转换

高精度除二取余。

手算一个样例代码基本就能写了,比如985除2取余的计算过程。

string s;

int main()
{
    while(cin>>s)
    {
        vector<int> num;
        for(int i=0;i<s.size();i++) num.pb(s[i]-'0');

        string res;
        for(int i=0;i<s.size();)
        {
            int t=0;//余数
            for(int j=i;j<s.size();j++)
            {
                t=t*10+num[j];
                num[j]=t/2;
                t%=2;
            }
            res.pb('0'+t);
            while(num[i] == 0) i++;//核心代码
        }
        reverse(res.begin(),res.end());
        cout<<res<<endl;
    }
    //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14371686.html