【问题标题】:How to comparing binary numbers in C++ [closed]如何在 C++ 中比较二进制数 [关闭]
【发布时间】:2020-03-15 18:26:20
【问题描述】:

我想通过异或比较二进制数

例如: bin1: 1011 bin2: 0011

结果:1​​000 ==> (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;
    }
}

【问题讨论】:

  • 不是异或吗? bin1 ^ bin2
  • 您在找运营商&amp;&amp;吗?
  • bin1bin2的类型有哪些?
  • 将使用一些代码来 (a) 获取数字,(b) 比较数字,以及 (c) 生成输出。您的问题应该是至少尝试所有。如果您尝试过,请发布您的minimal reproducible example,也许我们可以看到哪里出了问题。如果你还没有尝试过......那么......是时候尝试了。
  • bin1bin2 整数

标签: c++ dev-c++


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多