This page is also available in 3 other languages

<<

[Bitwise Operators]

설명

비트 왼쪽으로 옮김 연산자 << 는 왼쪽 피연산자의 비트를 오른쪽 피연산자가 지정한 위치 수 만큼 왼쪽으로 옮긴다.

문법

변수 << 비트 수;

매개변수

변수: 허용되는 자료형: byte, int, long
비트 수: 숫자 < = 32. 허용되는 자료형: int

예제 코드

int a = 5;      // 이진수: 0000000000000101
int b = a << 3; // 이진수: 0000000000101000, 즉 십진수 40

주의와 경고

값 x를 y 비트 옮기면(x << y), 가장 왼쪽에 있는 y 비트를 잃어 문자 그대로 존재하지 않게 됨:

int x = 5;  // 이진수: 0000000000000101
int y = 14;
int result = x << y;  // 이진수: 0100000000000000 - 101에서 처음의 1은 버려짐

값의 어떤 것도 망각으로 옮겨지지 않는다고 확신한다면, 왼쪽 쉬프트 연산자를 생각하는 간단한 방법은 왼쪽 피연산자에 2의 오른쪽 피연산자 제곱을 곱하는 것이다. 예를 들어 2의 거듭제곱을 생성하려면 다음 표현식을 사용할 수 있다:

   연산       결과
   ---------  ------
    1 <<  0      1
    1 <<  1      2
    1 <<  2      4
    1 <<  3      8
    ...
    1 <<  8    256
    1 <<  9    512
    1 << 10   1024
    ...

다음 예제는 왼쪽으로 옮김 연산자를 사용하여 바이트를 바닥(LSB)에서 꼭대기(MSB)로 옮기고 이진 값을 출력하여, 받은 바이트 값을 시리얼 모니터에 출력하는 데 사용할 수 있다:

// 이진값 (1 or 0) 출력
void printOut1(int c) {
  for (int bits = 7; bits > -1; bits--) {
    // Compare bits 7-0 in byte
    if (c & (1 << bits)) {
      Serial.print("1");
    }
    else {
      Serial.print("0");
    }
  }
}

더보기