|
前久寫《不用中間數交換兩個變量的方法》反響不錯,其中用到了異或運算。今天看《通信原理》書,提了數字信息可以很方便地進行加密與解密運算,用到了異或。
隨手寫了個實例玩玩:
unsigned int aa=3456;
void main( void )
{
unsigned int pwd=5438;
aa ^= pwd; //加密
aa ^= pwd; //解密
}
沒有用函數、指針傳遞參數形式來寫,更顯的簡單,就兩行語句。
定理:一個數與另一個數做兩次異或運算后得到原值,或者說恢復到原來的值。
運行過程如圖,感謝IAR的方便。
|
-
1.jpg
(23.66 KB, 下載次數: 274)
下載附件
2019-12-31 17:15 上傳
加密運算前
-
2.jpg
(23.95 KB, 下載次數: 252)
下載附件
2019-12-31 17:15 上傳
已加密
-
3.jpg
(19.31 KB, 下載次數: 249)
下載附件
2019-12-31 17:15 上傳
解密運算后,得到原值
評分
-
查看全部評分
|