C语言:异或_用c语言写异或运算

C语言:异或_用c语言写异或运算异或运算符"∧"也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即0∧0=0,0∧1=1,1^0=1,1∧1=0。相同为0,不相同为1运算说明0^0=0,0^1=1 0异或任何数,其结果=任何数1^0=1,1^

大家好,欢迎来到IT知识分享网。

异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。

相同为0,不相同为1

运算 说明
0 ^ 0=0,0 ^ 1=1 0异或任何数,其结果=任何数
1 ^ 0=1,1 ^ 1=0 1异或任何数,其结果=任何数取反
x ^ x=0 任何数异或自己,等于把自己置0

 

(1)使特定位翻转

比如:01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算,即

                  0111 1010

                  0000 1111

结果:       0111  0101

结果值的低4位正好是原数低4位的翻转。要使哪几位翻转就将与其∧运算的该几位置为1即可。这是因为原数中值为1的位与1进行∧运算得0,原数中的位值0与1进行∧运算的结果得1。

(2)实现两个值的交换

通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a=3,b=4的值,可通过下列语句实现:

a=a∧b;
b=b∧a;
a=a∧b;

0011 —a  =3

0100 —b  =4

———–

0111—-a  =7

0100—-b  =4

———–

0011—–b  =3

0111——a  ==7

0100—-a ==3

#include <stdio.h>
int main()
{
    int a=3,b=4;
    printf("%d,%d\n",a,b);
    a=a^b;
    printf("%d,%d\n",a,b);
    b=b^a;
    printf("%d,%d\n",a,b);
    a=a^b;
    printf("%d,%d\n",a,b);
    getchar();
}

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29709.html

(0)
上一篇 2023-10-08 13:33
下一篇 2023-10-09 18:33

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信