Programming/.NET

비트 단위의 논리 연산을 수행합니다.

 

int i = 10;

int bit_and = i & 3;
int bit_or = i | 3;
int bit_xor = i ^ 3;
int bit_not = ~i;

Console.WriteLine("Result : {0} | {1}", bit_xor, bit_not);

 

& 는 and 연산으로서 같은 값인것만 1로 처리합니다. 그래서 10의 값이 1010과 3의 값인 0011을 연산하면

 

1010
0011
----
0010

 

이 되어 결과는 3이 됩니다.

 

| 는 or 연산입니다. 따라서 둘중 어느 하나라도 1이 있으면 결과는 1이 됩니다.

 

1010
0011
----
1011

 

^ 는 Xor 연산으로 둘의 값이 1이든 0이든 서로 틀려야만 1이 됩니다.

 

1010
0011
----
1001

 

마지막으로 ~는 보수입니다. 피연산자의 모든 값을 반대로 뒤집습니다.

 

1010
----
0101

 

다만 이 경우 부호를 나타내는 최상위 비트도 반대로 처리하기 때문에 결과는 -값이 됩니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET MVC] Razor  (0) 2019.01.08
[ASP.NET MVC] URL 다루기  (0) 2018.12.18
[C#] 비트(bit) 연산자  (0) 2018.11.20
[ASP.NET MVC] 액션 메서드(Action Method)  (0) 2018.11.13
[C#] Thread  (0) 2018.11.06
[C#] MemoryStream / StreamWriter / StreamReader / BinaryWriter / BinaryReader  (0) 2018.10.31
0 0