首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查找等于n.can的Xor b,您建议我寻找xor值的有效方法

查找等于n.can的Xor b,您建议我寻找xor值的有效方法
EN

Stack Overflow用户
提问于 2020-08-26 15:28:30
回答 2查看 412关注 0票数 0

设两个数字a和b使得a^b是n,给出了n值,我需要找到a和b。示例

代码语言:javascript
运行
复制
n=5
a=1 b=4 and a^b=5
similarly  a=9  b=12
please help to find this.'
EN

回答 2

Stack Overflow用户

发布于 2020-08-26 15:45:04

以二进制形式写入这两个数字并逐位计算XOR

代码语言:javascript
运行
复制
a =  9     1 0 0 1
b = 12     1 1 0 0

a ^ b = n  0 1 0 1    decimal 5

a ^ n = b  1 1 0 0

b ^ n = a  1 0 0 1  

概括地说:

代码语言:javascript
运行
复制
a          w  x  y  z

b          w !x  y !z

n          0  1  0  1

你可以取一个任意的a,倒置两位,如图所示,得到b,例如a ^ b = 5

票数 1
EN

Stack Overflow用户

发布于 2020-08-26 15:47:31

如果对a、b的值没有约束,那么a可以是0,b等于nE 29(因为具有零的数字的<代码>E 110xor<>E 211等于相同的数字)。

如果0,则可以将该值从1迭代到n,并将该值分配给a,则b的值将为n^a,检查bE 221是否小于E 122nE 223E 223如果打印E 124a和E 126bE 227

代码语言:javascript
运行
复制
int a,b,n;
a=-1;
b=-1;
cin>>n;
for(int i=1;i<=n;i++)
{
    b=i^n;
    if((b>0) && (b<=n))
    {
        a=i;
        break;
    }
}
cout<<a<<" "<<b;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63600847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档