c++ - 找到两个二进制输入的xnor位c++

标签 c++ binary

我正在使用 C++ 执行 xnor 门,我能够通过使用递归函数编码来找到答案,但是答案位的顺序是相反的,因为我通过使用模比较两个二进制输入,最后一位的印章并比较,如果相等则输出 1 ,否则输出 0 ,我的问题是如何将答案反转为正确的顺序。 int xnor(int x, int y) {//应用xnor的函数

if (x > 0) {

    int reminder1 = x % 10;
    int reminder2 = y % 10;

    if (reminder1 == reminder2) {

        cout<<1;

    }
    else {

        cout<<0;
    }
     return xnor(x / 10, y / 10);

}

假设我输入 110001 和 101110 它将显示 000001 而不是 100000

最佳答案

修复您的函数很简单,只需将递归调用放在输出之前而不是之后。此外,对于 x > 0 的其他情况,您还缺少 return 语句。但这不是正确的解决方案。正确的一种是正常编码数据,而不是复杂的二进制十进制。是的,标准流缺少二进制数据的输入/输出,但您可以为此使用 std::bitset 或编写一个从二进制字符串到 int 的转换器,反之亦然,这很简单。然后你的函数也将变得微不足道并且不需要任何递归,因为二进制操作对于大多数 CPU 来说是 native 的:

int xnor(int x, int y)
{
    return ~(x^y);
}

关于c++ - 找到两个二进制输入的xnor位c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49451538/

相关文章:

c++ - 为什么 MinGW 的 std::to_string() 运行速度比 VS2012 慢 16 倍

c++ - 使用 SWIG 在 GO 中包装 OpenCV 的 C++ API

windows - 搜索维护的二进制差异/补丁工具或库

python - 通过一些数字的所有二进制组合作为 "?"

二进制格式,按位运算存在吗?例如。 <<16#7F, 16#FF>> bsl 1

c++ - 在 ‘n’ 行中打印 Zig-Zag 字符串的串联

c++ - 防止模态对话框中的事件循环阻塞

node.js - 在 Nodejs 中从套接字接收大量二进制数据

c++ - 如何等待 Glib::Dispatcher 的连接函数完成?

python - 在 python 中将数字表示为两个幂之和的最快方法是什么