본문 바로가기
개발 기초/PHP

PHP - 비트 연산자

by 륀두 2020. 4. 23.
반응형

비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다.

숫자를 2진수로 변환하여 수행합니다.

 

 

비트 연산자 설명
& 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산)
| 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산)
^ 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산)
~ 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산)
<< 지정한 수만큼 비트를 전부 왼쪽으로 이동시킴. (left shift 연산)
>> 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산)

다음 그림은 비트 AND 연산자(&)의 동작을 나타냅니다.

이처럼 비트 AND 연산자는 대응되는 두 비트가 모두 1일 때만 1을 반환하며, 다른 경우는 모두 0을 반환합니다.

출처 TCPschool

 

다음 그림은 비트 OR 연산자(|)의 동작을 나타냅니다.

이처럼 비트 OR 연산자는 대응되는 두 비트 중 하나라도 1이면 1을 반환하며, 두 비트가 모두 0일 때만 0을 반환합니다.

출처 TCPschool

 

다음 그림은 비트 XOR 연산자(^)의 동작을 나타냅니다.

이처럼 비트 XOR 연산자는 대응되는 두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환합니다.

출처 TCPschool

다음 그림은 비트 NOT 연산자(~)의 동작을 나타냅니다.

이처럼 비트 NOT 연산자는 해당 비트가 1이면 0을 반환하고, 0이면 1을 반환합니다.

출처 TCPschool

다음은 시프트 연산자(<<)를 사용하여, 해당 데이터의 모든 비트를 왼쪽으로 1비트씩 이동시키고 있습니다.

출처 TCPschool

 

그 결과 해당 데이터의 값은 처음 값에 2를 곱한 것과 같아집니다.

반대로 오른쪽 시프트 연산자(>>)를 사용하여, 해당 데이터의 모든 비트를 오른쪽으로 1비트씩 이동시키고 있습니다.

출처 TCPschool

그 결과 해당 데이터의 값은 처음 값에 2를 나눈 것과 같아집니다.

반응형

'개발 기초 > PHP' 카테고리의 다른 글

PHP - 조건문(if, else, elseif, switch)  (0) 2020.04.23
PHP - 삼항 연산자  (0) 2020.04.23
PHP - 논리 연산자  (0) 2020.04.23
PHP - 비교 연산자  (0) 2020.04.23
PHP - 증감 연산자  (0) 2020.04.23