반응형
연산자 타입 | 예 시 | 설 명 |
산술 연산자 | +, -, *, /, %, ++, -- | 수학적 계산을 수행합니다. |
비교 연산자 | ==, !=, <, >, <=, >= | 두 값을 비교하여 bool 값을 반환합니다. |
논리 연산자 | && (And), || (Or), ! (Not) | bool 값에 대한 논리 연산을 수행합니다. |
비트 연산자 | & (AND), | (OR), ^ (XOR) | 비트 단위의 연산을 수행합니다. |
할당 연산자 | =, +=, -=, *=, /=, %=, &=, | 변수에 값을 할당합니다. |
조건 연산자 | ? : | 조건에 따라 다른 값을 반환합니다. |
Null 조건 연산자 | ?. | Null 검사를 간단히 수행합니다. |
Null 병합 연산자 | ?? (C# 3.0 이상만 지원) | Null 값을 대체값으로 대체합니다. |
• 논리 연산자 :
연산자 설명 예시 결과 && (AND) 둘 다 참일 때 참 true&& true true true && false false || (OR) 둘 중 하나라도 참이면 참 true || false true false || false false ! (NOT) 참->거짓으로, 거짓->참으로 !true false !false true
• 비트 연산자 :
1. & (비트 AND) : 두 피연산자의 대응되는 비트가 모두 1일 때 1을 반환합니다.
ex:) 5 & 3 = 1 (이진수로 101 & 011 = 001)
2. | (비트 OR) : 두 피연산자의 대응되는 비트 중 하나라도 1이면 1을 반환합니다.
ex:) 5 | 3 = 7 (이진수로 101 | 011 = 111)
3. ^ (비트 XOR) : 두 피연산자의 대응되는 비트가 서로 다르면 1을 반환합니다.
ex:) 5 ^ 3 = 6 (이진수로 101 ^ 011 = 110)
4. ~ (비트 NOT) : 피연산자의 모든 비트를 반전시킵니다.
ex:) ~5 = -6 (이진수로 ~00000101 = 11111010, 2의 보수 표현)
5. << (왼쪽 시프트) : 비트를 왼쪽으로 지정된 수만큼 이동시킵니다. 오른쪽에는 0이 채워집니다.
ex:) 5 << 1 = 10 (이진수로 101 << 1 = 1010)
6. >> (오른쪽 시프트) : 비트를 오른쪽으로 지정된 수만큼 이동시킵니다. 왼쪽에는 부호 비트가 채워집니다.
ex:) 5 >> 1 = 2 (이진수로 101 >> 1 = 010)
• 비트 연산자 사용처 :
비트 연산자는 주로 다음과 같은 상황에서 사용됩니다:
1. 플래그 조작 : 여러 boolean 값을 하나의 정수에 저장할 때
2. 하드웨어 제어 : 특정 비트를 설정하거나 해제할 때
3. 암호화 : 비트 단위의 연산이 필요한 암호화 알고리즘에서
4. 최적화 : 특정 수학 연산을 빠르게 수행할 때 (예: 2로 나누기 대신 >> 1 사용)
• ? 연산자 (조건 연산자) : 조건 연산자는 조건에 따라 두 값 중 하나를 선택합니다. 문법은 다음과 같습니다.
ex1) condition ? expression1 : expression2 ex2) int result = (10 > 5) ? 1 : 0; // result는 1
• ?. 연산자 (Null 조건 연산자) : 객체가 null인 경우 멤버 접근을 안전하게 수행할 수 있게 해줍니다. 객체가 null이면 전체 표현식이 null을 반환하고, 그렇지 않으면 멤버에 접근합니다.
class Person { public string Name { get; set; } } Person person = null; int? length = person?.Name?.Length; Console.WriteLine(length); // 출력:
이 예시에서 person이 null이므로, length는 null이 됩니다. NullReferenceException이 발생하지 않습니다.
• ?? 연산자 (Null 병합 연산자) : Null 병합 연산자는 왼쪽 피연산자가 null이 아니면 그 값을 사용하고, null이면 오른쪽 피연산자를 사용합니다.
string name = null; string displayName = name ?? "Unknown"; // displayName은 "Unknown"
반응형
'Programming Languages > C# 기초문법' 카테고리의 다른 글
[C# 기초문법] 반복문 (for, while, do-while, foreach) (0) | 2024.09.03 |
---|---|
[C# 기초문법] 조건문 (if, else, else if, switch, 삼항 연산자) (0) | 2024.09.03 |
[C# 기초문법] 열거형 (enum) (0) | 2024.09.02 |
[C# 기초문법] 문자열 (string) (0) | 2024.09.02 |
[C# 기초문법] 배열 (Array) (0) | 2024.09.02 |