Web
Php 분류

PHP 비트 연산자

작성자 정보

  • console 작성
  • 작성일

컨텐츠 정보

본문

비트 연산자(bitwise operator)

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

또한, 비트 단위로 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용합니다.

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

 

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

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

비트 AND 연산

 

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

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

비트 OR 연산

 

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

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

비트 XOR 연산

 

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

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

비트 NOT 연산

 

다음 예제는 비트 NOT 연산자(~)와 시프트 연산자(<<, >>)의 예제입니다.

예제

$num_01 = 15;
$num_02 = 8;


echo "~ 연산자에 의한 결괏값은 ".(~$num_01)."입니다.<br>";    // 1의 보수
① echo "<< 연산자에 의한 결괏값은 ".($num_02<<1)."입니다.<br>"// 곱하기 2
② echo ">> 연산자에 의한 결괏값은 ".($num_02>>1)."입니다.";     // 나누기 2

코딩연습 ▶

 

위 예제의 ①번 라인에서는 왼쪽 시프트 연산자(<<)를 사용하여, 해당 데이터의 모든 비트를 왼쪽으로 1비트씩 이동시키고 있습니다.

 

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

 

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

 

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

관련자료

댓글 0
등록된 댓글이 없습니다.
Php 24 / 1 페이지
RSS
  • 그누보드 썸네일 이미지 화질 개선 방법
    등록자 PixelProphet
    등록일 01.10 조회 2736

    Php 그누보드에서 이미지를 올릴때, 간혹 이미지 화질이 떨어져 보이는 현상이 있습니다.... 이럴 때 제가 찾아본 방법 중에 가장 쉽게 해결 할 수 …

  • PHP 배열의 기초
    등록자 console
    등록일 01.05 조회 2532

    Php 배열(array)이란? PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미합니다. 맵(map)은한 쌍의 키(key…

  • PHP 기타 제어문
    등록자 console
    등록일 01.05 조회 2568

    Php 루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면,다음 조건식을검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다. 사용자는 c…

  • PHP 반복문
    등록자 console
    등록일 01.05 조회 2534

    Php 반복문 반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여수행하는명령문입니다. 프로그램이 처리하는 대부분의코드는 반복적인 형태가 많으…

  • PHP 조건문
    등록자 console
    등록일 01.05 조회 2385

    Php PHP 표현식 표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다. 표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 …

  • PHP 기타 연산자
    등록자 console
    등록일 01.05 조회 2350

    Php 삼항 연산자(ternaryoperator) 삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음과 같…

  • PHP 비트 연산자
    등록자 console
    등록일 01.05 조회 2561

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

  • PHP 논리 연산자
    등록자 console
    등록일 01.05 조회 2617

    Php 논리 연산자(logical operator) 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다. and, or, …

  • PHP 비교 연산자
    등록자 console
    등록일 01.05 조회 2637

    Php 비교 연산자(comparisonoperator) 비교 연산자는피연산자사이의 상대적인 크기를 판단하여,참(true)과 거짓(false)을 반환합니…

  • PHP 증감연산자
    등록자 console
    등록일 01.05 조회 2248

    Php 증감 연산자(increment and decrement operator) 증감 연산자는피연산자를 1씩 증가 혹은 감소시킬 때사용하는 연산자입니다…

  • PHP 대입연산자
    등록자 console
    등록일 01.05 조회 2315

    Php 대입 연산자(assignment operator) 대입 연산자는변수에 값을 대입할 때 사용하는 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽…

  • PHP 산술연산자
    등록자 console
    등록일 01.05 조회 2317

    Php 연산자(operator) PHP는다양한 연산을 위해많은 종류의 연산자를 제공하고 있습니다. 산술 연산자(arithmetic operator) 산…

  • PHP 타입변환
    등록자 console
    등록일 01.05 조회 2722

    Php 자동 타입 변환(type juggling) PHP에서는 변수를 선언할 때 타입을 명시할 필요가 없습니다. 왜냐하면, PHP에서 변수의 타입은 해…

  • PHP 기본타입
    등록자 console
    등록일 01.05 조회 2337

    Php 기본 타입 타입(data type)이란 프로그램에서 다룰 수 있는 값의 종류를 의미합니다. PHP에서는여러 가지 형태의 타입을 미리 정의하여제공…

  • PHP 상수
    등록자 console
    등록일 01.05 조회 2543

    Php 상수(constant) 상수(constant)란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다. 하지만 상수가 변수와 다른…