>  기사  >  백엔드 개발  >  PHP 중앙값 연산 사용법 소개

PHP 중앙값 연산 사용법 소개

怪我咯
怪我咯원래의
2017-06-20 13:32:011798검색

php비트 연산은 PHP에서 일반적으로 사용되지 않지만 매우 유용한 PHP 비트 연산의 사용법을 소개하겠습니다.

  • $a & $b 및 (비트 AND)

  • $a | $b 또는 (비트 OR)

  • $a ^ $b Xor(비트 독점 OR)

  • ~$ a Not(비트 단위 아님)

  • $a ab628d29e31adb17849f44bf3032444a> $b 오른쪽 시프트(오른쪽 시프트)

상세 explain
$a & $b 비트별 AND는 $a와 $b에서 모두 1인 비트를 1로 설정합니다.

例:10 & 12 = 8

10 1010
12 1100
1000 8
$a $b 비트별 또는 $ 중 하나를 설정합니다. a 또는 $b는 1입니다.
예: 10 | 12 = 14
10 1010
12 1100
1110 14
$a ^ $b 비트별 XOR
예: 10 ^ 12
10 1010
12 1100
0110 6
~ 비트 표기법은 $a의 0을 1로 설정하고 1을 0으로 설정합니다. ; $b는 왼쪽으로 이동하여 $a의 요소를 왼쪽으로 이동합니다. $b번(각 이동은 2를 곱함을 의미) PHP에는 전원 동작이 없다는 점이 정말 우울합니다.
$a >> $b 오른쪽 시프트는 $a의 값을 오른쪽으로 $b번 이동합니다(각 이동은 2로 나누는 것을 의미함).
예: 1024 537b4c33040428c565a64b57c37304ad> 오른쪽 시프트(오른쪽 시프트)
$a & $b 비트 AND에 대한 자세한 설명 $a와 $b를 설정합니다. 둘 다 1인 비트 예: 10 & 12 = 810 101012 1100 1000 8
$a | $b 비트별 OR은 $a 또는 $b에서 1인 비트를 1로 설정합니다. 1100 1110 14
$a ^ $b 비트별 XOR 예: 10 ^ 1210 101012 1100 0110 6
~a 비트별 NOT은 $a의 0을 1로 설정하고 1을 로 설정합니다. 예: ~10 = 10 1010 11111111111111111111111111 1111111111111111111111111111110101 -11
$ a 7998e736e813369f9479c1be45909f6c> $b 오른쪽 시프트는 $a를 오른쪽으로 $b번 이동합니다(각 이동은 2로 나누는 것을 의미함). 예: 1024 << 2 = 125610000000000(1024) 비트는 다음과 같습니다. of 100000000(256)



플래그 비트 필드 및
비트 연산자

PHP의
error_reporting 매개변수 값 목록


1 E_ERROR

    2 NING
  • 4 E_PARSE
  • 8 E_NOTICE
  • 16 E_CORE_ERROR

  • 32 E_CORE_WARNING


  • 64 E_COMPILE_ ERROR


  • 128 E_COMPILE_WARNING


  • 256 E_

    USER_ERROR

  • 512 E_USER_WARNING

  • 1024 E_USER_NOTICE


  • 2047 E_ALL


  • 2048 E_STRICT


  • 4096 E_RECOVERABLE_ERROR


  • 값의 가치가 모두 뛰어오르는 것을 발견했고, 모두 2의 n+1승입니다.
  • 이걸 다시 보세요. value의 값을 이진수로 변환합니다.

  • 값 상수
0000 0001 E_ERROR

0000 0010 E_WARNING

0000 0100 E_PARSE

0000 1000 E_NOTICE

0001 0000 E_CORE_ERROR

0010 0000 E_CORE_WARN ING
.
.
.
... ...한 번 추가된 각 전력에 대해 한 자리 숫자는 다음과 같습니다. (컴퓨터를 공부한 거의 모든 사람들이 이것을 알고 있습니다 :)…)
참고: 각 옵션은 비트에 해당합니다(1은 켜짐을 의미하고 0은 꺼짐을 의미)

자, 매개변수 설정의 이점을 살펴보겠습니다. 이와 같이.

효과를 보려면 세 가지 매개변수를 예로 들어보세요

error_reporting(3);//decbin(3) == 0000 0011; (相当于设置 E_WARNING 和 E_ERROR )
error_reporting(4);//decbin(4) == 0000 0100;(相当于设置 E_PARSE )
error_reporting(5);//decbin(5) == 0000 0101;(相当于设置 E_PARSE 和 E_ERROR)

설정 가져오기:

특정 항목이 켜져 있는지 확인하려면 비트 연산을 사용하여 해당 항목을 얻을 수 있습니다(& - "AND" 규칙, 모두 1은 1임). , 그렇지 않으면 0)

//E_PARSE

if($n & 4){

//E_PARSE가 켜집니다

//4의 이진수는 0100입니다. 세 번째 비트만 1이므로 " &" 연산

where else

모두 0으로 설정됨

//따라서 $n의 세 번째 비트도 1인 경우에만 결과가 0보다 커집니다.
//예: 4(0100),5(0101),6(0110),7(0111)
}else{
//E_PARSE가 꺼져 있습니다//세 번째 비트가 0이므로 이 옵션이 꺼져 있음을 의미합니다 }

설정 변경: ($n은 현재 소수점 값을 나타냅니다.)

적용 중에 필요에 따라 특정 비트에 대한 설정을 전환할 수 있습니다.
아래 사용법을 확인하세요.

//E_PARSE 항목을 닫고 '&' “AND” 규칙을 사용하세요
$n = $n&(8192-4-1);
//8191을 사용하는 이유는 무엇인가요?
//옵션 개수와 관련이 있습니다. 이 오류 표시 표시는 총 13비트(4096의 이진수는 13비트)인 반면, 8192는 (14비트)입니다.
//왜 마이너스 4인가요? 마이너스 1?
//8192-4-1=8187. (1111111111011) 이진수는 13자리로 우리가 사용하는 최대 자릿수와 같습니다. 그리고 세 번째 비트의 해당 값은 0입니다.
//이 숫자를 사용하여 1에서 4096 사이의 숫자로 비트 AND 연산을 수행합니다. 0으로 설정되는 세 번째 비트를 제외하고 다른 비트의 값은 변경되지 않나요? "AND" 규칙:)
//마찬가지로 E_WARNING
//$n = $n&(8192-2-1);

//E_PARSE 항목을 활성화하려면 '|' OR" 규칙
$ n = $n|4;
//위의 종결 부분을 읽은 후 열기에 대해 몇 가지 아이디어를 얻을 수 있습니다.)
// '|' - "OR" 규칙은 1이 1이고, 그렇지 않으면 0입니다.
//위의 비트가 모두 1이면 다른 비트에는 영향을 주지 않습니다. 이제 모든 비트가 0이면 다른 비트에는 영향을 주지 않습니다.)
//그래서 해당 값만 설정하면 됩니다. 다음 피연산자의 이진 비트를 1로 설정하고 다른 비트는 영향을 받지 않습니다. 모든 위치는 0이므로 괜찮습니다.
//찾으셨나요? 이는 각 설정 항목에 해당하는 십진수 값입니다.


위 내용은 PHP 중앙값 연산 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.