按位與、或、異或等運算方法:html
http://blog.sina.com.cn/s/blog_618199e60100ka5b.htmlspa
運算規則:0&0=0; 0&1=0; 1&0=0; 1&1=1;htm
即:兩位同時爲「1」,結果才爲「1」,不然爲0。blog
應用:get
假設咱們規定一我的有聽,說,讀,寫,四個權限。權限
用二進制位0111 0000表示,第7,6,5,4位對應聽,說,讀,寫,四個權限。1表示有權限,0表示無權限。二進制
若是服務端給咱們傳遞了一個112,那麼他有什麼權限呢?程序
將112轉換成二進制:01110000,可見:他有聽,說,讀的權限。方法
那麼用程序怎麼判斷某一位是不是1呢?im
咱們能夠用2的6,5,4,3次方,分別跟傳遞進來的112進行與運算。若是結果是0,表示無權限。不然表示有權限。
112 0111 0000 傳遞的值
2^6 0100 0000 相與結果不是0,第7位有聽權限。
2^5 0010 0000 相與結果不是0,第6位有說權限。
2^4 0001 0000 相與結果不是0,第5位有讀權限。
2^3 0000 1000 相與結果爲0,第4位沒有寫權限。
兩位同時爲「1」,結果才爲「1」,不然爲0。
總結:傳遞的值與某位相與的結果若是是0表示某位上沒有權限。