异或运算

 我来答
科创17
2022-07-27 · TA获得超过5914个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:176万
展开全部
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
示例:
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑

上面的箭头指出了对应二进制位不同的位置。

先将两个数异或运算得到n,那么n里面1的个数就是结果,如果n不为0,那么n至少有一位是1。如果n减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1。其余所有位将不会受到影响。这样右边这部分的&运算结果就为0,然后循环

1.按位与(&)【有0则0】

运算规则:0&0=0;0&1=0;1&0=0;1&1=1;

用途:

(1)清零。如果想将一个单元清零,只需与一个各位都为0的数值相与即可。

(2)取出一个数的指定位。与上 一个指定位为1,其余位为0的数值即可。

例:设x=11101100,取x的低四位。令x&00001111=00001100

2.按位或(|)【有1则1】

运算规则:0|0=0;0|1=1;1|0=1;1|1=1;

用途:

(1)常用来对某些位置1。或上 一个指定位为1,其余位为0的数值即可。

例:设x=11101100,将x的低四位置1。令x|00001111=11101111

3.异或(^)【同0异1】

运算规则:0 0=0;0 1=1;1 0=1;1 1=0;

用途:

(1)使特定位翻转,异或上 一个要翻转位数为1,其余位为0的数值即可。

例:设x=11101100,将x的低四位翻转。令x^00001111=11100011

(2)与0异或,保留原值。

(3)基于异或运算,不引用新变量,交换两个变量的值

a=a^b;b=a^b;a=a^b(基于加减法还有:a=a+b;b=a-b;a=a-b)

转自[ https://www.cnblogs.com/alatar16/p/8994738.html] 爆裂时空博客
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓网科技
2024-10-17 广告
ZigBee作为一项新型的无线通信技术,其具有传统网络通信技术所不可比拟的优势,既能够实现近距离操作,又可降低能源的消耗。又如,相较于蓝牙等无线通信技术,ZigBee无线通信技术可有效降低使用成本, 即便数据处理的速率并不高,然而,值得肯定... 点击进入详情页
本回答由晓网科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式