位運算子允許對整型數中指定的位進行置位。如果左右引數都是字串,則位運算子將操作字元的 ascii 值。
<?php echo 12 ^ 9; // 輸出為 '5'
echo "12" ^ "9"; // 輸出退格字元(ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // 輸出 ascii 值 #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
echo 2 ^ "3"; // 輸出 1
// 2 ^ ((int)"3") == 1
echo "2" ^ 3; // 輸出 1
// ((int)"2") ^ 3 == 1
?>
位運算子
例子名稱
結果
$a & $b
and(按位與)
將把 $a 和 $b 中都為 1 的位設為 1。
$a | $b
or(按位或)
將把 $a 或者 $b 中為 1 的位設為 1。
$a ^ $b
xor(按位異或)
將把 $a 和 $b 中不同的位設為 1。
~ $a
not(按位非)
將 $a 中為 0 的位設為 1,反之亦然。
$a << $b
shift left(左移)
將 $a 中的位向左移動 $b 次(每一次移動都表示「乘以 2」)。
$a >> $b
shift right(右移)
將 $a 中的位向右移動 $b 次(每一次移動都表示「除以 2」)。
warning
在 32 位系統上不要右移超過 32 位。不要在結果可能超過 32 位的情況下左移。
PHP基礎 運算子 算術運算子 位運算子
1 將強制轉換為數字作加法運算 例 a 33 b 45.0 echo a b a b gettype a b 2 將強制轉換為數字作減法運算 例 a 33 b 45 echo a b a b gettype a b a 33.70 b 45.00 echo a b a b gettype a b 3...
位運算子,「,」逗號運算子,
位運算子有 按位與 按位或 按位異或 按位取反 優先順序從高到低,依次為 按位與運算有兩種典型用法,一是取乙個位串資訊的某幾位,如以下 擷取x的最低7位 x 0177。二是讓某變數保留某幾位,其餘位置0,如以下 讓x只保留最低6位 x x 077。按位或運算的典型用法是將乙個位串資訊的某幾位置為1。...
運算子之位運算子
右移 負數 無符號右移 或 異或 與 非 說明 位運算子都是作用在二進位製上的 比如 n 50 n 1 結果是多少?100 n 2 結果是多少?200 n 5 結果是多少?1600 為什麼會是這樣的呢?運算的邏輯如下 1,n 50 2,n的二進位制是 0011 0010 3,0011 0010 左移...