深入理解异或运算实例
一.代码实现
#include<stdio.h> int main() { int a = 10; int b = 12; a = a^b; b = a^b; a = a^b; printf("%d %d",a,b); system("pause"); return 0; }
二.异或性质
每一个元素就是它自身的加法逆元(a^a = 0)
三.汇编分析
1.取出a和b的值
2.将a的值放在eax中,将b与eax异或处理,将a的值保存起来。
3.将a的值放在eax中,将b与eax异或处理,将b的值保存起来。
4.将a的值放在eax中,将b与eax异或处理,将a的值保存起来。
运用了a^a = 0;的概念;
本文出自 “做一个小小小司机” 博客,请务必保留此出处http://10799170.blog.51cto.com/10789170/1741808
原文地址:http://10799170.blog.51cto.com/10789170/1741808