>백엔드 개발 >PHP 튜토리얼 >PHP 연산자(4) '비트 연산자' 예제 설명

PHP 연산자(4) '비트 연산자' 예제 설명

怪我咯
怪我咯원래의
2017-04-12 15:17:243440검색

지금까지 PHP 연산자 중 "php 산술 연산자", "php 문자열 연산자", "대입 연산자"에 대해 설명드렸습니다. 오늘은 PHP 연산자의 "비트 연산자" 에 대한 자세한 소개입니다.

비트 연산자는 PHP에서 자주 사용되지 않지만 여전히 매우 유용합니다. 다음 내용에서는 비트 연산자의 사용법을 보여주는 예제를 제공합니다.

비트 연산자는 이진 비트를 낮은 순서에서 높은 순서로 정렬한 후 연산을 참조하며, 정수로 지정된 비트를 평가하고 연산할 수 있습니다.

PHP의 연산자는 아래 표와 같습니다

运算符 说明 例子
& 按位与 $m & $n
 | 按位或 $m | &$n
^ 按位异或 $m ^ $n
~ 按位非或按位取反 $m ~ $n
左移 $m
>> 右移 $m >> $n

예제를 사용하여 위 표의 연산자를 설명하겠습니다.

<?php

$m=1;                //1=0 00000001
$n=2;                 //2=00000010

$mn=$m&$n;
echo $mn."<br/>";

$mn=$m^$n;
echo $mn."<br/>";

$mn=$m|$n;
echo $mn;

?>

코드 실행 결과:

PHP 연산자(4) 비트 연산자 예제 설명

예제 설명:

$m&$n : 둘 다 1이면 1, 그렇지 않으면 0. 즉, $a 및 $b의 비트를 모두 1에서 1로 설정하고, 그렇지 않으면 0으로 설정합니다.

00000001 ← $m
& 00000010 ← $b

비교 결과가 00000000이므로 출력은 0


$m^ $n: 비트별 OR 과정에서 차이는 1이고 같은 것은 0입니다.
00000001 ← $m

^ 00000010 ← $n

그래서 결과는 00000011이 되고, 3이 출력됩니다.


$m|$n: 비트 OR 과정에서 1은 1, 0은 모두 0,

00000001 ← $m

| 00000010 ← $n

결과가 00000011이므로 출력은 3입니다.

위의 예에서는 "비트 OR", "비트 OR", "비트 XOR", 다음 세 가지 예시


비트 NOT 또는 비트 부정 예시 를 살펴보겠습니다. 코드는 다음과 같습니다

<?php
$m = 2;
$m1 = ~$m;
echo $m1;
?>

실행 결과

PHP 연산자(4) 비트 연산자 예제 설명

이때 우리의 실행 결과가 -3 인데 여기서 주목할 필요가 있습니다.

참고: 컴퓨터에서 음수는 양수 값의 보수 형식으로 표현됩니다.

1: 2의 32비트 원본 코드는 0000 0000 0000 0000 0000 0000 0000 0010

2: 비트 반전은 1111 1111 1111 1111 1111 1111 1111 101

첫 번째 숫자가 1이고 부호 비트가 1이므로 음수이므로 양수 값의 보수 형식은 다음과 같이 표현됩니다. (부호 비트는 변경되지 않고 비트 단위로 반전되며 끝에 1이 추가됩니다.) )

1000 0000 0000 0000 0000 0000 0000 0011

따라서 출력은 -3



왼쪽으로 이동 및 시프트 코드 예시

<?php
$m = 12;     // 12=00001100
$n = 3;     // 3=00000011

$mn= $m << $n;
echo $mn ."<br/>";

$mn= $m >> $n;
echo $mn ; 
?>

실행 결과:

PHP 연산자(4) 비트 연산자 예제 설명

설명 예시:


$m: $m의 비트를 왼쪽으로 $n번 이동합니다(각 이동은 "2$b 곱하기", 즉 "2$b 곱하기"를 의미함).
0000 1100 ← $m


0110 0000 = 96




$m>>$n: $m의 비트를 오른쪽으로 $n 번 이동합니다(각 이동은 "2로 나누기", 즉 "2 -$로 곱하기"를 의미함) b "). 0000 1100 ← $m


0000 0001 = 1



위 내용은 PHP 연산의 "비트 연산자"에 대한 자세한 내용입니다. 이해가 되지 않는 부분이 있으면 PHP 중국어 웹사이트를 팔로우하여 위에 메시지를 남겨주세요. 가능한 한 빨리 답변을 드리거나 PHP 중국어 웹사이트에서 검색하시면 원하시는 내용을 찾으실 수 있을 것입니다. 다음 섹션에서는

PHP 연산의 논리연산자 에 대해 자세히 소개하겠습니다.

위 내용은 PHP 연산자(4) '비트 연산자' 예제 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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