> 백엔드 개발 > PHP 튜토리얼 > PHP 비트 AND(&) 연산자 응용 실습

PHP 비트 AND(&) 연산자 응용 실습

WBOY
풀어 주다: 2016-07-29 09:12:36
원래의
1423명이 탐색했습니다.

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과 1을

'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 &#39;%执行1千万次计算毫秒耗时:&#39;.($d-$c); //%执行1千万次计算毫秒耗时:1035
로그인 후 복사

2. 사용자 권한 판단

시스템의 사용자 권한 할당 모듈에서 권한을 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿