• 题目描述
      • 二进制、十进制互相转化
    • 思路
      • 二进制->十进制:高位开始,逢1平方后相加
      • 十进制->二进制:mod 2法

    代码:
    #include
    #include
    #include
    #include
    using namespace std;

    //十进制->二进制
    void d2b(int d, string& s)
    {
    while (1)
    {
    int t = d%2;
    if (t == 1) s+=’1’;
    else s+=’0’;
    d/=2;
    if (d == 0) break;
    }


    reverse(s.begin(), s.end());
    }

    //二进制->十进制
    void b2d(long long int& d, string s)
    {
    int len=s.size();
    d = 0;
    for (int i=0; i < len; i++)
    {
    if (s[i] == ‘1’)
    {
    long long int t=pow(2, len-i-1);
    d += t;
    }
    }
    }