논리 연산자(Logical Operator)
논리 연산자와 비트 연산자가 헷갈리는 경우가 많다. 논리 연산자는 부울 논리 연산자라고 부르면 헷갈리는게 덜하다. 부울 값을 대상으로 동작하기 때문이다.
- & (싱글 앰퍼샌드, Single ampersand) - 논리 AND 연산자 (Logical AND operator)
- | (싱글 파이프, Single pipeline) - 논리 OR 연산자 (Logical OR operator)
이 두 연산자는 단락 연산자(Short-circuit operator)가 아닙니다.
조건부 논리 연산자(Conditional Logical Operator)
- && (더블 앰퍼샌드, Dobule ampersand) - 조건부 논리 AND 연산자 (Conditional Logical AND operator)
- || (더블 파이프, Double pipeline) - 조건부 논리 OR 연산자 (Conditional Logical OR operator)
이 두 연산자는 단락 연산자(Short-circuit operator)입니다.
심볼 | 읽는 법 | 연산자 종류 | 단락 연산자 여부 |
& | 싱글 앰퍼샌드 | 논리 연산자, 비트 연산자 | X |
| | 싱글 파이프 | 논리 연산자, 비트 연산자 | X |
&& | 더블 앰퍼샌드 | 논리 연산자 | O |
|| | 더블 파이프 | 논리 연산자 | O |
! | - | 논리 연산자 | X |
^ | - | 논리 연산자, 비트 연산자 | X |
이항 연산자로 쓰이는 경우
// 비트 연산자 (Bitwise Operation)
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = a & b; /* 12 = 0000 1100 */
// 논리 연산자 (Logical Operation)
if (true & false)
{
//do something
}
단항 연산자로 쓰이는 경우
int i;
unsafe
{
int* p = &i;
*p = 123;
}
논리 부정 연산자(Logical Negation Operator)
bool passed = false;
Console.WriteLine(!passed); // output: True
Console.WriteLine(!true); // output: False
논리 배타적 OR 연산자(Logical Exclusive OR Operator)
Console.WriteLine(true ^ true); // output: False
Console.WriteLine(true ^ false); // output: True
Console.WriteLine(false ^ true); // output: True
Console.WriteLine(false ^ false); // output: False
함께 읽으면 좋은 글
참조 사이트
'프로그래밍 > C#' 카테고리의 다른 글
C# 커맨드 라인(CommandLine) 파싱 라이브러리 소개 (0) | 2023.02.17 |
---|---|
C# 이스케이프 시퀀스(Escape sequence) (0) | 2023.02.14 |
이진 연산자(Binary operator)에 대해서 (0) | 2023.01.27 |
C# Eager Operator와 단락 연산자 (0) | 2023.01.27 |
C# 간단하게 Json 형식 파싱하기 (2) | 2023.01.26 |
댓글