1. 程式人生 > >關於shell編程中邏輯運算異或的理解和實驗

關於shell編程中邏輯運算異或的理解和實驗

運維 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編程中邏輯運算異或的理解和實驗