C语言中按位异或和按位取反什么去区别?

 我来答
匿名用户
2014-02-21
展开全部
先说一下布尔值的与、或、异或、反运算:与运算,两者都为真计算结果为真,反之为假:1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0;或运算,至少其一都为真计算结果为真,反之为假:1 | 1 = 1,1 | 0 = 1,0 | 1 = 1,0 | 0 = 0;异或运算,两者不同为真,反之为假:1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;取反运算,单目运算符:~1 = 0,~0 = 1;以上例子 1 代表真,0 代表假。按位运算就是将二进制位的每一位进行如上计算。如 2 | 5,转换为二进制(以 1 字节 8 位为例):00000010 | 00000101,每个二进制位分别进行或运算后得:00000111 即 7。虽然 7 = 5 + 2 但不代表 2 | 5 = 2 + 5。如:2 | 6 = 6,5 | 6 = 7,2 | 4 | 5 | 6 | 7 = 7。同理,按位与运算 2 & 5 的结果为 0:00000010 & 00000101 = 00000000按位与运算 2 & 6 的结果为 2(二进制 00000010):00000010 & 00000110 = 00000010。同样也能算出 2 ^ 6 的结果为 4(二进制 00000101):00000010 ^ 00000110 = 00000100。取反运算 ~00000110 = 11111001。当然,对一个数字进行取反运算结果是多少,还与该类型是有符号还是无符号,占用的字节大小等有关。上面的例子只是以一个字节为例进行说明。
追问
按位异或可以用于交换两个变量的值么?
操场的哥
2018-04-11 · TA获得超过1.5万个赞
知道小有建树答主
回答量:65
采纳率:100%
帮助的人:8721
展开全部

先说一下布尔值的与、或、异或、反运算:
与运算,两者都为真计算结果为真,反之为假:
1 & 1 = 1,1 & 0 = 0,0 & 1 = 0,0 & 0 = 0;
或运算,至少其一都为真计算结果为真,反之为假:
1 | 1 = 1,1 | 0 = 1,0 | 1 = 1,0 | 0 = 0;
异或运算,两者不同为真,反之为假:
1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;
取反运算,单目运算符:
~1 = 0,~0 = 1;
以上例子 1 代表真,0 代表假。

按位运算就是将二进制位的每一位进行如上计算。
如 2 | 5,转换为二进制(以 1 字节 8 位为例):
00000010 | 00000101,每个二进制位分别进行或运算后得:
00000111 即 7。虽然 7 = 5 + 2 但不代表 2 | 5 = 2 + 5。
如:2 | 6 = 6,5 | 6 = 7,2 | 4 | 5 | 6 | 7 = 7。
同理,按位与运算 2 & 5 的结果为 0:
00000010 & 00000101 = 00000000
按位与运算 2 & 6 的结果为 2(二进制 00000010):
00000010 & 00000110 = 00000010。
同样也能算出 2 ^ 6 的结果为 4(二进制 00000101):
00000010 ^ 00000110 = 00000100。
取反运算 ~00000110 = 11111001。
当然,对一个数字进行取反运算结果是多少,还与该类型是有符号还是无符号,占用的字节大小等有关。上面的例子只是以一个字节为例进行说明。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请叫我老王wow
推荐于2017-11-26 · TA获得超过942个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:438万
展开全部
异或运算,两者不同为真,反之为假:
1 ^ 1 = 0,1 ^ 0 = 1,0 ^ 1 = 1,0 ^ 0 = 0;
取反运算,单目运算符:
~1 = 0,~0 = 1;
以上例子 1 代表真,0 代表假,望采纳谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辉藏愚霜
2019-03-01 · TA获得超过3493个赞
知道大有可为答主
回答量:2996
采纳率:31%
帮助的人:392万
展开全部
1、按位异或,是双目运算符。

其运算规则为:相同时为0,不相同时为1。即:

1^1=0
0^0=0
1^0=1
0^1=1
2、接位取反是单目运算符。

其运算规则为:1变0,0变1.即:

~1=0

~0=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式