如何在C++中比较二进制数

How to comparing binary numbers in C++

我想用异或比较二进制数字

例如: bin1:1011 bin2: 0011

结果:1000 ==> (bin1[0] != bin2[0], bin1[1] == bin2[1], bin1[2] == bin2[2], bin1[3] = = bin2[3])

我的代码:

#include <iostream>

using namespace std;

int main() {
    int n;
    int bin;
    int vec1[bin];
    int vec2[bin];
    int a;

    cin>>n;

    for(int i=0;i<n;i++) {
        cin>>bin;
        for(int j=0;j<bin;j++) {
            cin>>vec1[j];
            cin>>vec2[j];
        }
    }

    for(int i=0;i<n;i++) {
        for(int j=0;j<bin;j++) {
            if(vec1[j]==vec2[j]) {
                a = 0;
            } else if (vec1[j]!=vec2[j]) {
                a = 1;
            }
        cout<<a<<" ";
        }
        cout<<endl;
    }
}

您可以使用异或运算符。 A^B = 0 如果 A = B。 如果输入不相似,则 XOR 给出 1 个输出;如果它们相似,则给出 0 个输出。

因此,如果 XOR 运算的答案为 0,则数字相等,否则不相等。 当然,还有其他方法,比如将它们转换成不同的格式,然后使用适用的比较运算符或函数进行比较。