포스트

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
     }
  }
}


https://homzzang.com/b/cs-11

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.