C语言里的按位异或运算符

 我来答
府寿0Jb
2020-01-24 · TA获得超过3.1万个赞
知道小有建树答主
回答量:1.2万
采纳率:28%
帮助的人:606万
展开全部
1:“按位与”运算符(&)全1为1,有0则0。0&0=0,1&0=0,1&1=1
2:“按位或”运算符(|)有1则1,全0则0。0|0=0,1|0=1,
1|1=1
3:“异或”运算符(^)相同为0,不同为1。0^0=0,1^0=1,1^1=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栋黎胥美
2020-02-06 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:828万
展开全部
1:“按位与”运算符(&)用法是如果两个相应的二进制位都为1,则该位的结果值为1否则为0。0&0=0,1&0=0,1&1=1
2:“按位或”运算符(|)用法是如果两个相应的二进制位有一个为1,则该位的结果值为1否则为0。0&0=0,1&0=0,1&1=1
0,1&0=1,1&1=1
3:“异或”运算符(^)用法是如果两个相应的二进制位为同号,则该位的结果值为1否则为0。0&0=1,1&0=0,1&1=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洛德业剧温
2019-08-25 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:785万
展开全部
C语言中^为按位异或运算符,若两个二进制位相同,则结果为0,不同为1
#include
"stdio.h"
main()
{
int
a=6,b=10,c;
c=a^b;
printf("%d",c);
}
函数输出结果为12
将6和10分别转换为2进制数为0110(前边补了个0)和1010。然后按照定义进行异或运算
0110
a
1010
b
1100
a和b最左边第一位和第二位不相同,所以分别为1,第三位和第四位相同,所以分别为0
二进制数1100转换为10进制数,结果是12。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
以元魁袁璠
2019-08-03 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:651万
展开全部
以下的
答案中异或,解释错误,相同为0,不同为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
味蕾摄影游侠
2019-07-30 · TA获得超过3518个赞
知道大有可为答主
回答量:3023
采纳率:29%
帮助的人:171万
展开全部
异或运算符∧也称XOR运算符,它的作用是判断参加运算的两个二进制位是否为同号,若同号则结果为0;异号则为1。即0异或0=0,1异或0=1,1异或1=0。
应用:
1、使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与0000111进行异或运算,结果为01110101。
2、与0异或,保留原值。如012异或00=012.
3、交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a异或b;
b=b异或a;
a=a异或b;
C语言位运算符:与、或、异或、取反、左移和右移
位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
&
按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~
取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<<
左移
用来将一个数的各二进制位全部左移N位,右补0
>>
右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式