C# |= 연산자(operator)
#C샾
처음보는 연산자가 있어서 정리해두려 합니다.
|= ** 할당연산자라고 하는 = 앞에 추가적인 연산자를 넣어서 순차적으로 연산자를 실행해주는 건 다들 아실텐데요, 저도 이전에 그렇게 알고 있던 연산자는 += (더셈 후 할당), /= (나눗셈 후 할당) 등 입니다. 이러한 '사칙연산자+할당연산자' 말고 '논리연산자+할당연산자' 이런 것도 가능하네요! 그래서 다음과 같은 or 연산자와 and 연산자 등을 할당(=) 연산자와 같이 쓰면 다음과 같이 됩니다.
| = : or 비트 연산 후 할당 &= : and 비트 연산 후 할당
| ** | =** |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// C#
// 두 비트 중 하나가 1이면 각 비트를 1로 설정 후 할당.
// 5의 이진수 : 00000101
// 3의 이진수 : 00000011
// |= 연산 시 : 00000111 (※ 이걸 10진수로 변환 시 7)
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
int x = 5;
x |= 3; // x = x | 3
Console.WriteLine(x); // 7
}
}
}
&=
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// C#
// 두 비트 비교해 모두 1이면 각 비트를 1로 설정 후 할당.
// 5의 이진수 : 00000101
// 3의 이진수 : 00000011
// & 연산 시 : 00000001 (※ 이걸 10진수로 변환 시 1)
using System;
namespace Homzzang
{
class Program
{
static void Main(string[] args)
{
int x = 5;
x &= 3; // x = x & 3
Console.WriteLine(x); // 1
}
}
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.