异或^的意义及其应用

倖福魔咒の 提交于 2020-03-01 16:52:02

一、异或

1、异或是一个数学运算符。他应用于逻辑运算。

2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。

3、在计算机应用中,普遍运用,异或的逻辑符号 ^  (Shift + 6).形象表示为:

真^假=真

假^真=真

假^假=假

真^真=假

或者为:

True ^ False = True

False ^ True = True

False ^ False = False

True ^ True = False

部分计算机语言用1表示真,用0表示假,所以两个字节按位异或如下

00000000

异或

00000000

=

00000000

============我是分界线============

11111111

异或

00000000

=

11111111

=============我还是分界线=============

00000000

异或

11111111

=

11111111

===========又是我。。。================

11111111

异或

11111111

=

00000000

=============分界线=====================

00001111

异或

11111111

=

11110000

========================================

所以 按位异或 也常用于字节取反操作。

---------------------------------------------------------------

异或还可以用来交换两个整形变量的值,而不需要第三个量的传递.

例如:

a=9;

b=10;

a=a^b;

b=b^a;

a=a^b;

结果是a为10,b为9.

4、说说异或运算^和他的一个常用作用。
异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1

两者相等为0,不等为1.

这样我们发现交换两个整数的值时可以不用第三个参数。
如a=11,b=9.以下是二进制
a=a^b=1011^1001=0010;
b=b^a=1001^0010=1011;
a=a^b=0010^1011=1001;
这样一来a=9,b=13了。


举一个运用, 按一个按钮交换两个mc的位置可以这样。

mybt.onPress=function()
{
mc1._x=mc1._x^mc2._x;
mc2._x=mc2._x^mc1._x;
mc1._x=mc1._x^mc2._x;
//
mc1._y=mc1._y^mc2._y;
mc2._y=mc2._y^mc1._y;
mc1._y=mc1._y^mc2._y;
}

这样就可以不通过监时变量来传递了。

最后要声明:只能用于整数。

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!