gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:35:30 24 4
gpt4 key购买 nike

我正在使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com