|=
[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://www.arduino.cc/reference/ko/language/structure/compound-operators/compoundbitwiseor/
'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 |