Java 二進制

按位與、或、異或等運算方法: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表示某位上沒有權限。

相關文章
相關標籤/搜索