关于异或的解答:
1.异或是一个数学运算符。他应用于逻辑运算。
2、例如:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值相 异结果为真
说说异或运算^和他的一个常用作用。
异或的运算方法是一个二进制运算:
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;
}
这样就可以不通过监时变量来传递了。
最后要声明:只能用于整数。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
本人的看法:
首先声明:这些文章不是本人所写,上面著明了来自FLASH8.NET,所以有的东西我也说不太清楚。
这个东西可能在普通的应用中使用的效果并不是太明显的,我们一般使用的变量在通过第三方的交换后能达到同样的效果,而且具有很好的可读性,因此一般还是推荐使用普通的方法。
这个方法采用了异或运算^的方法来完成,效果可能同样,但是一般不容易理解,也有点麻烦。我觉的在不影响程序运行的情况下,还是尽量使用一些自己熟悉的语法为好。
而且它也是有一定的局限性,不但要一定是整数,还要由计算机进行异或运算,异或运算的步骤比基本的加减法要多的多。在经典的VC阶段就知道连乘法都要转换成加法来做减小系统负担。当然,现在的计算机肯定不在话下拉~~(这是题外话)。
举个例子:
a=11
b=9
a=a+b
b=a-b
a=a-b
这个方法我觉的不错,操作也很简单。 但是这只能用在数值的计算上,对mc可能无能为力了^_^,要是java就好一点了,至少能对字符传进行操作了
----------------------------------------
|