몇 년 동안 PHP를 작성해 온 사람들은 비트 연산자를 사용해 본 적이 없다고 궁금해합니다. 그러니 여기서 바이너리를 보다가 현기증이 난다면 그냥 T\M\D로 가세요.
비트 연산자는 기본적으로 사용하지 않으며, 이 지식도 이해할 수 있는 수준으로 설정했습니다. 원하지 않으면 비트 연산자에 대한 지식을 배울 필요가 없습니다. 나중에 비트 연산을 사용할 때 배워보겠습니다.
지식학습수준[이해수준, 감상수준].
举例 | 说明 | 详细说明 |
---|---|---|
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
$a | $b | Or(按位或) | 将把 $a 和 $b 中任何一个为 1 的位设为 1。 |
$a ^ $b | Xor(按位异或) | 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。 |
~ $a | Not(按位取反) | 将 $a 中为 0 的位设为 1,反之亦然。 |
$a << $b | 左移 | 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。 |
$a >> $b | 右移 | 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。 |
위 기호는 모두 이진 연산입니다.
대부분의 경우 바이너리를 만나지 못하더라도 만나면 바이너리에 대한 지식을 보충할 수 있습니다.
<?php //$x二进制值为: $x = 5; //$y二进制值为: $y = 8; //结果为13 echo $x ^ $y; ?>
变量 | 二进制值 |
---|---|
$x | 0101 |
$y | 1000 |
异或结果 | 1101 |
XOR 설명: x와 y의 두 값이 동일하지 않으면 XOR 결과는 1입니다. x와 y의 두 값이 동일하면 XOR 결과는 0입니다.
1101은 $x와 $y를 XOR한 결과라고 추론할 수 있습니다. 이진법을 사용하여 1101을 십진법으로 변환한 결과는 13입니다.
보조 시스템에서 십진수로의 온라인 십진수 변환 스크린샷: