假设,我有一个存储在数组或字符串中的二进制数和等效的十进制数。超出了偶数long long int的范围。在这种情况下我该怎么办?我正在使用C++

最佳答案

正如我在评论中提到的那样-使用bitset。这是一个例子:

#include <iostream>
#include <bitset>

using namespace std;

typedef bitset<200> mybitset; // Or some other number

mybitset convert(const char *s)
{
    mybitset result;
    for (int loop = 0; s[loop]; ++loop) {
        if (s[loop] == '1') result[loop] = true;
    }
    return result;
}

int main() {
    mybitset num_1 =    convert(   "100101011101010100001");
    mybitset num_2 =    convert("110010100001001010100011");

    mybitset result = num_1 & num_2;

    cout << num_1.to_string() << endl;
    cout << num_2.to_string() << endl;
    cout << result.to_string() << endl;

    // your code goes here
    return 0;
}

ideone

07-24 09:53