PHP의 비트 AND 연산은 비트 연산을 위해 숫자를 이진 형식으로 변환하는 것입니다.
PHP 매뉴얼의 설명은 다음과 같습니다.
$a & $b | And(按位与) | 将把 $a 和 $b 中都为 1 的位设为 1。 |
1. &(패리티 판단)의 연산 방법
정수와 "1"에 대해 비트 AND 연산을 수행하면 연산 결과가 "0"이 됩니다. 짝수입니다. 연산 결과가 "1"이면 홀수를 나타냅니다.
$a = 3&1; echo '3&1:'.$a ; //<span style="font-family: Simsun;font-size:14px;">3&1:1</span> echo '<br>'; $b = 4&1; echo '4&1:'.$b; //<span style="font-family: Simsun;font-size:14px;">4&1:0</span>
'3' Binary: 11
'1' Binary: 01로 이진수로 변환하면 3&1의 이진연산 결과는 01이 되어 변환된다. 10진수로 하면 '1'입니다.
'4' 2진수: 100
'1' 2진수: 001 그러면 4&1의 2진수 연산 결과는 000이고 10진수로 환산하면 '0'입니다. ;
PS: '%'(모듈로 연산) 기호를 사용하여 패리티를 계산할 수도 있습니다. "3%2"의 출력 결과는 1입니다. 4%2"는 0입니다. "%"의 연산 효율성은 "&" 연산자보다 약간 높습니다.
function getMillisecond() { list($t1, $t2) = explode(' ', microtime()); return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000); } /* 判断数字的奇偶性 */ $a = getMillisecond(); for($i=1;$i<10000000;$i++) $i&1; $b = getMillisecond(); echo '&执行1千万次计算毫秒耗时:'.($b-$a); //&执行1千万次计算毫秒耗时:1068 echo '<br>'; $c = getMillisecond(); for($i=1;$i<10000000;$i++) $i%2; $d = getMillisecond(); echo '%执行1千万次计算毫秒耗时:'.($d-$c); //%执行1千万次计算毫秒耗时:1035
시스템의 사용자 권한 할당 모듈에서 권한을 1=>보기, 2=>추가, 4로 설정한다고 가정합니다. =>수정, 8=>삭제, 이런 방식으로 사용자 권한을 저장하려면 데이터베이스에 정수만 저장하면 되며, 구분된 문자열을 저장할 필요가 없습니다.
사용자에게 추가 및 보기 권한이 있는 경우 함수 코드는 1+2 = 3입니다. 사용자에게 모든 권한이 있는 경우 함수 코드는 1+2+4+8 = 15입니다. >
모든 사용자 권한은 12사용자 권한에 수정 권한이 있는지 확인합니다. 12&4 결과는 4이며, 이는 사용자에게 수정 권한이 있음을 의미합니다. 사용자에게 새 권한이 있는지 확인합니다. 12&2 결과는 0이며, 이는 새 권한이 없음을 의미합니다. 데이터베이스에서 수정 권한이 있는 모든 사용자 찾기: 수정 권한이 있는 모든 사용자를 찾으려면 (user_mod&4) >위 내용은 관련 내용을 포함하여 PHP 비트 AND(&) 연산자의 응용 실습을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.