如何在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,则数字相等,否则不相等。
当然,还有其他方法,比如将它们转换成不同的格式,然后使用适用的比较运算符或函数进行比较。
我想用异或比较二进制数字
例如: 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,则数字相等,否则不相等。 当然,还有其他方法,比如将它们转换成不同的格式,然后使用适用的比较运算符或函数进行比较。