This page is also available in 3 other languages

|=

[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;

더보기