php ビット演算
$a & $b and (ビット単位の AND)
$a | $b or (ビット単位の OR)
$a ^ $b Xor (ビット単位の排他的 OR)
~$a Not (ビット単位の NOT) )
$a << $b 左シフト (左シフト)
$a >> $b 右シフト (右シフト)
ビットごとの AND を設定します$a と $b は両方とも 1 対 1;
例: 10 & 12 = 8
10 1010
12 1100
1000 8
$a $b ビット単位 OR $a | $b のいずれか1 の場合、1 に設定します。
例: 10 | 12 = 14
10 1010
12 1100
1110 14
$a ^ $b ビット単位の XOR
例: 10 ^ 12
1 0 1010
12 1100
0110 6
~a ビット単位の表記法は、$a の 0 を 1 に、1 を 0 に設定します
例: ~10 =
10 1010 11111111111111111111111111111111 1111111111111111111111110101 -11
$a
例: 1
1(1) 10 桁の左シフト 10000000000(1024)
to 1*2 の 10 乗 PHP にべき乗演算がないのは本当に憂鬱です。
$a >> $a の値を右に $b 回移動します (各移動は 2 で割ることを意味します)
例: 1024
10000000000 ) 2 ビット右にシフトすると 100000000 (256) です
php は $a & $b と (ビット単位の AND) $a $b | (ビット単位の OR) $a ^ $b Xor (ビット単位の排他的 OR )~ の演算です$a Not(ビット単位の否定)$a << $b 左シフト(左シフト)$a >> $b 右シフト(右シフト)
$a と $b のビット単位の AND の詳細説明$a と $b は両方とも 1 に設定されます。例: 10 & 12 = 810 101012 1100 1000 8
$a | $b のビットごとの OR は、$a の 1 であるか、$b が 1 に設定されます。 : 10 | 12 = 1410 101012 1100 1110 14
$a ^ $b ビット単位で 1 に設定し、1 から 0 に設定します。 例: ~10 = 10 1010 1111111111111111111111111111111111111111111 1111111111110101 -11
$a <<$b 左に移動$a を $b 回左に移動します (各移動は 2 の乗算を表します); 例: 1 << 10 = 10241(1) 10 桁左にシフト 10000000000(1024) は 1*2 の 10 乗に相当します。 . PHPに電源操作がないのは本当に憂鬱です。
$a >> $b 右シフトは $a の値を右に $b 回移動します (各移動は 2 で割ることを意味します) 例: 1024