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