|
前久写《不用中间数交换两个变量的方法》反响不错,其中用到了异或运算。今天看《通信原理》书,提了数字信息可以很方便地进行加密与解密运算,用到了异或。
随手写了个实例玩玩:
unsigned int aa=3456;
void main( void )
{
unsigned int pwd=5438;
aa ^= pwd; //加密
aa ^= pwd; //解密
}
没有用函数、指针传递参数形式来写,更显的简单,就两行语句。
定理:一个数与另一个数做两次异或运算后得到原值,或者说恢复到原来的值。
运行过程如图,感谢IAR的方便。
|
-
1.jpg
(23.66 KB, 下载次数: 274)
加密运算前
-
2.jpg
(23.95 KB, 下载次数: 252)
已加密
-
3.jpg
(19.31 KB, 下载次数: 249)
解密运算后,得到原值
评分
-
查看全部评分
|