//位運算子
$a &= $b $a = $a & $b
$a |= $b $a = $a | $b
$a^=$b $a = $a ^ $b
$a <<= $b $a = $a << $b
$a >>= $b $a = $a >> $b
各位運算子的解釋
例子 名稱 結果
$a & $b and(按位與) 將把 $a 和 $b 中都為 1 的位設為 1。
$a | $b or(按位或) 將把 $a 或者 $b 中為 1 的位設為 1。
$a ^ $b or(按位異或) 將把 $a 和 $b 中不同的位設為 1。
~ $a not(按位非) 將 $a 中為 0 的位設為 1,反之亦然。
$a << $b shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示「乘以 2」)。
$a >> $b shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示「除以 2」)。
以上運算中,可能位運算有點較難於理解,當然這需要你有十進位制轉成二進位制的基本知識才行。不然理解起來確實有點難度。
eg:$mark_1 = 3;
$mark_2 = 8;
$mark_2^=$mark_1;
echo $mark_2;
結果: 這將輸出「11」,此時$mark_2的型別仍為整型.
分析: 1 首先我把 3 與 8 都轉為二進位制如下(怎麼轉,自己學習哈喲 ^_^,我這裡就不寫了) :
十進位制 -> 二進位制 -> 十進位制
3 -> 0011
8 -> 1000
按位運算後: 1011 -> 11
2 即:3與8轉為二進位制後,它們每一位上的二進位制值都相比較,如果不相同就設
置為'1',相同為0,所以運算後的二進位制結果為'1011',(另註:1100為12)而這就是十進位制就的11了。
3 ok? ^_^(其它位運算模擬)
php 位運算與許可權,PHP中的位運算和進製處理
php中的位運算和進製是比較冷門的知識,感覺很簡單也很好理解,但是在實際場景中卻很少使用,本篇博文就是簡單了解基本概念以及講解如何去實際使用.位運算php中的位運算子是對整形進行的操作,比如對於十進位制,二進位制,八進位制等數字的一些操作.按位與 and 按位或 or 按位取反 not 按位異或 x...
php位運算的許可權設計
位運算的運算物件是二進位制位,速度快,效率高,而且節省空間,位運算做許可權控制也相當的靈活。但是位運算有很大的侷限,位移不能超過32次,這就要求許可權的數量不超過32中。將許可權按照2的n次方來定義值,一次類推。為什麼要這個樣子定義,這個樣紙的定義是為了保證每個許可權值 二進位制 中只有乙個1,而它...
PHP位運算許可權設計
首先將許可權按照2的次方來定義值,依次類推 define add 1 增加許可權 define upd 2 修改許可權 define sel 4 查詢許可權 define del 8 刪除許可權 a access add upd sel del a擁有增刪改查許可權 b access add upd...