본문 바로가기

Development/C++

|= 연산자

|=

[Compound Operators]

설명

복합 비트 OR 연산자 |= 는 때때로 변수와 상수와 함께 쓰이고, 변수 안의 특정 비트를 "설정"(1로 설정)하는데 쓰인다.

비트 OR | 연산자 다시 보기:

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    (operand1 | operand2) - 결과 반환

문법

x |= y; // x = x | y; 와 같음

매개변수

x: 변수. 허용되는 자료형: char, int, long
y: 변수 또는 상수. 허용되는 자료형: char, int, long

예제 코드

0과 비트 OR 되는 비트들은 바뀌지 않으므로, 만약 myByte 가 byte 변수라면,

myByte | B00000000 = myByte;

1과 비트 OR 되는 비트들은 1로 설정되므로:

myByte | B11111111 = B11111111;

주의와 경고

우리는 비트 연산자 안에서 비트를 다루므로 - 이진 포매터를 상수와 함께 쓰는 게 편하다. 숫자는 다른 표현의 같은 값, 그들은 이해하기 쉽지 않다. 또, 명료성을 위해 B00000000 이 보여지지만, 0은 어떤 숫자 형태로든 0 이다.

결과적으로 - 변수의 0과 1을 설정하기 위해, 변수의 나머지를 그대로 두려면, 복합 비트 OR 연산자 (|=)를 상수 B00000011과 함께 쓴다.

1  0  1  0  1  0  1  0    변수
0  0  0  0  0  0  1  1    마스크
----------------------
1  0  1  0  1  0  1  1
비트 안 바뀜
                 비트 설정

여기에 변수가 기호 x로 대체된 같은 표현이 있다.

x  x  x  x  x  x  x  x    변수
0  0  0  0  0  0  1  1    마스크
----------------------
x  x  x  x  x  x  1  1
비트 안 바뀜
                 비트 설정

그래서 만약:

myByte =  B10101010;
myByte |= B00000011 == B10101011;

 

 

 

 

 

 

https://archive.ph/qRsjF

https://www.arduino.cc/reference/ko/language/structure/compound-operators/compoundbitwiseor/

 

|= - 아두이노 참조

예제 코드 0과 비트 OR 되는 비트들은 바뀌지 않으므로, 만약 myByte 가 byte 변수라면, myByte | B00000000 = myByte; 1과 비트 OR 되는 비트들은 1로 설정되므로: myByte | B11111111 = B11111111; 주의와 경고 우리는

www.arduino.cc

 

'Development > C++' 카테고리의 다른 글

ASCII Converter  (0) 2022.03.27
[C/C++] inline 함수에 대하여...  (0) 2022.03.27
ASCII code table  (0) 2022.03.27
C++ Pass By Reference Explained [중요]  (0) 2022.03.26
Inline function #3  (0) 2022.03.26