關於shell編程中邏輯運算異或的理解和實驗
阿新 • • 發佈:2018-03-19
運維 shell 邏輯運算 shell編程中的邏輯運算,有或且非、短路運算,異或運算,我們用最簡單的方式理解一下異或。
異或:^
異或的兩個值,相同為假,不同為真
理解起來,兩個值是指二進制的值,出現兩個1或者兩個0結果為假[0],出現兩個不一樣的值結果為[1]。
例如:
十進制 | 二進制 |
---|---|
10 | 01010 |
22 | 10110 |
異或結果 28 | 11100 |
那異或在shell編程中如何體現價值呢?下面的實驗可以用在臨時變量裏面。
#利用臨時變量將a b進行互換值 [root@centos7 ~]#a=6 [root@centos7 ~]#b=8 [root@centos7 ~]#tmp=$a [root@centos7 ~]#a=$b [root@centos7 ~]#b=$tmp [root@centos7 ~]#echo $a $b 8 6 [root@centos7 ~]#b=8 [root@centos7 ~]#a=6 [root@centos7 ~]#a=$[a^b] #此時的a^b按照二進制運算,則結果為如下計算結果 0110 6 1000 8 1110 14 [root@centos7 ~]#echo $a $b 14 8 [root@centos7 ~]#b=$[a^b] #此時的a^b按照二進制運算,則結果為如下計算結果 1110 14 1000 8 0110 6 [root@centos7 ~]#echo $a $b 14 6 [root@centos7 ~]#a=$[a^b] #此時的a^b按照二進制運算,則結果為如下計算結果 1110 14 0110 6 1000 8 [root@centos7 ~]#echo $a $b 8 6
關於shell編程中邏輯運算異或的理解和實驗