This page is also available in 3 other languages

&

[Bitwise Operators]

설명

C++에서 비트 AND 연산자는 단일 앰퍼샌드 & 이며, 두 정수 식 사이에 사용된다. 비트 AND 연산자는 둘러싸인 식들의 각 비트 위치에서 독립적으로 연산, 즉 이 규칙으로 한다: 각 입력이 1이면, 결과 출력은 1, 그렇지 않으면 결과는 0.

이것을 표현하는 다른 방법:

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - 반환된 출력

아두이노에서, int 형식은 16비트 값이므로, 두 정수 식 사이에 & 을 사용하면 16개 AND 연산이 동시에 발생한다.

예제 코드

아래와 같은 코드 조각에서:

int a =  92;    // 2진수: 0000000001011100
int b = 101;    // 2진수: 0000000001100101
int c = a & b;  // 결과:    0000000001000100, 즉 10진수 68

a와 b안의16비트의 각각은 비트 AND를 써서 처리되고, 16개 결과 비트는 c에 저장되어, 2진수 값 01000100이 되며, 10진수로는 68이다.

비트 AND의 가장 일반적인 용도 중 하나는 정수에서 특정 비트(또는 비트들)을 선택하는 것이며, 주로 masking 이라 불린다. 아래 예를 보세요

PORTD = PORTD & B00000011;  // 비트 2 - 7을 0으로, 핀 0 과 1은 건드리지 않음 (xx & 11 == xx)

더보기