逻辑运算与位运算
2018-4-14
總是將邏輯運算與位運算混淆,于是乎,在這里進行總結(jié)一下!
1.邏輯運算
邏輯運算又稱布爾運算,它的結(jié)果應(yīng)該是一個真假值,也就是true還是false。
1)&&:與運算,同為真時才為真。
2)||:或運算,同為假時才為假,也就是說有一個為真即為真。
2>3||3>2 -> true 2>3||3>4 -> false3)!:非運算,! true=false,! false=true。
!2>3 -> true !3>2 -> false4)^:異或運算,按照每一位進行異或,相同為0,不同為1。
5^3: 5 -> 00...00101(一共32位) 3 -> 00...00011(一共32位) 結(jié)果為00...00110即為62.位運算
1)&:按位與
2)|:按位或
3)^:按位異或
4)~ :按位取反
5)<<:左移
6)>>:算數(shù)右移
百度了一下,發(fā)現(xiàn)位運算的作用真的特別多~
1.簡單應(yīng)用
1)&:多用來取位操作:
比如說判斷數(shù)的奇偶性就是取最后一位,與1&,若結(jié)果為1,則為奇數(shù),反之為偶數(shù)。
2)|:多用來賦值:
把某個數(shù)變成最接近的偶數(shù):|1-1即可。
3)^:密碼加密:
兩次異或同一個數(shù)之后結(jié)果不變,這個也可以用來在不會有溢出的風(fēng)險下交換兩個數(shù)的值。
2.進階應(yīng)用
1)計算一個32位整數(shù)的二進制中1的個數(shù)的奇偶性。
其實還有很多,但是由于時間問題我就不一一贅述了…
總結(jié)
- 上一篇: python实现 多叉树 寻找最短路径
- 下一篇: [2017-2018上 网络工程] 面向