【问题标题】:How do I represent an integer in binary so I can compare using XOR?如何用二进制表示整数,以便可以使用 XOR 进行比较?
【发布时间】:2015-10-12 00:41:05
【问题描述】:

我必须创建一个采用 1-6 位二进制的代码,如果字符串不是 6,则用 0 填充最高有效位,并使用 XOR 操作比较 2 个 3 位数据包。输出很奇怪,我认为这是因为我在进行 XOR 时比较的是整数 0,而不是二进制数 0,它搞砸了。

char binary[300];

cin >> binary;

int size = strlen(binary);
//cout << "Size: " << size << endl;

int a,b,c,d,e,f;

if(size == 1){
    a = 0;
    b = 0;
    c = 0;
    d = 0;
    e = 0;
    f = binary[0];

    cout << a^d << b^e << c^f << endl;
    return 0;
}

if(size == 2){
    a = 0;
    b = 0;
    c = 0;
    d = 0;
    e = binary[0];
    f = binary[1];

    cout << a^d << b^e << c^f << endl;
    return 0;
}

if (size == 3){
    a = 0;
    b = 0;
    c = 0;
    d = binary[0];
    e = binary[1];
    f = binary[2];

    cout << a^d << b^e << c^f << endl;
    return 0;
}

if (size == 4){
    a = 0;
    b = 0;
    c = binary[0];
    d = binary[1];
    e = binary[2];
    f = binary[3];

    cout << a^d << b^e << c^f << endl;
    return 0;
}

if (size == 5){
    a = 0;
    b = binary[0];
    c = binary[1];
    d = binary[2];
    e = binary[3];
    f = binary[4];

    cout << a^d << b^e << c^f << endl;
    return 0;
}

if (size == 6){
    a = binary[0];
    b = binary[1];
    c = binary[2];
    d = binary[3];
    e = binary[4];
    f = binary[5];

    cout << a^d << b^e << c^f << endl;
    return 0;
}
return 0;

【问题讨论】:

  • 这段代码一团糟。从更详细地描述您需要做什么开始。例如。你真的输入像 101010 这样的二进制数,还是像 1234 这样的普通十进制数?
  • 是的,它只是一个二进制数作为输入
  • 你需要使用异或来比较每个相等的数字并打印 0,每个不相等的数字都打印 1?
  • 嗯?没有单独的“二进制数”类型。数字没有底。您可以写下特定基数的数字,但数字本身没有基数。
  • @immibis ...或者用键盘输入它们,这正是这里的程序想要的。

标签: c++ binary xor bits parity


【解决方案1】:

由于您的代码很糟糕,这里有一个更简洁的版本。
尝试了解发生了什么,而不是仅仅复制它。

std::string s;
std::cin >> s;
while(s.length() < 6)
    s = "0" + s;  
std::cout << (bool)(s[0] ^ s[3]);
std::cout << (bool)(s[1] ^ s[4]);
std::cout << (bool)(s[2] ^ s[5]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多