加密迭代
哪里迭代了?仅仅是利用位运算交换变量值而已。
呵呵,请问下版主,你那代码是不是在做重复的替换操作?
仅仅是位运算,哪里和“替换”有关系了?可以看看这个文章:谈论 变量值的交换方法总结 2007.8.6http://m1902.spaces.live.com/blog/cns!7D900B760C56FA84!206.entry
版主在博客里分析得很透切.
那文章不是我写的……
通过异或运算也能实现变量的交换,这也许是最为神奇的:
void swap(int a ,int b){a=a^b; b=a^b; a=a^b;}
证明:a1=a0^b0; b1=b0^a1=b0^(a0^b0)=a0^b0^b0=a0; a2=a1^b1=(a0^b0)^a0=b0^a0^a0=b0;此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。
神奇的疑惑(异或)