| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 멀티쓰레드
- 반복문
- thread
- 차이점
- 해쉬맵
- 큐
- map
- vector
- MonoBehaviour
- c#
- static_cast
- rookiss
- std::unordered_map
- 자료구조
- list
- 객체지향
- 프래그멘테이션
- 벡터
- 기술면접
- 알고리즘
- std::map
- Queue
- 힙영역
- 리스트
- 트리
- 스택영역
- 배열
- 스택
- 공부
- 인프런
- Today
- Total
호빵의 IT 개발소
[C#] 5. 데이터 연산 본문
//산술 연산자
+ (더하기), - (빼기), * (곱하기), / (나누기), % (나머지)
※ 나머지에 대한 개념이 조금 어려우신분들이 있는데 14를 3으로 나누면 몫은 4가 나오고 나머지는 2가 나옵니다. 나머지는 대체로 프로그래밍에서 짝수, 홀수를 찾을때 쓰입니다.
int a = 10;
if (a % 2 == 0)
{
Console.WriteLine("짝수입니다");
}
else // else if(a % 2 == 1)
{
Console.WriteLine("홀수입니다");
}
예)
14 = 3 * 4(몫) + 2(나머지)

//증감 연산자
증감 연산자는 1씩 증가 혹은 감소시킬때 사용하는 연사자 입니다.
++ (1 증감), -- (1 감소)
※여기서 int a = 100; 이라고 할때 a++; 사용하게 되면 a = 100 + 1; 과 같은 의미가 됩니다. a--도 마찬가지로
a = 100 - 1;와 같은 의미입니다. 하지만 여기서 중요한 사항은 증감 연산자가 앞에 붙는지 뒤에 붙는지에 따라 다른 의미가 되게 됩니다. 예) 만약 Console.WriteLine(++a); 으로 콘솔창을 불러내게 되면 101이라는 값이 즉시 연산되어 나오게 됩니다. 하지만 Console.WriteLine(a++);로 불러내게 되면 100이라는 값이 나오게 됩니다. 이유는 증감연산자가 뒤에 붙게 되면 Console.WriteLine 다음 순서로 연산을 실행하게 되기 때문입니다. 증감연산자에 위치에 따라 주의하셔야 합니다.
//관계 연산자 (비교 연산자)
< (작다), <= (작거나 같다), >(크다), >=(크거나 같다), ==(같다), !=(다르다)
//논리 연산자
&& (AND연산자), || (OR연산자), ! (NOT)
| A | B | A && B | A || B | !A |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 0 | 0 | 0 | 1 |
1. AND 연산자는 위에 표에서 보면 A와 B 두개 다 1(참)일 경우에 1(참)이 됩니다. 하나에 조건이라도 만족하지 않으면 0(거짓)이 됩니다.
2. OR 연산자는 A와 B 둘중 하나가 1(참)이 되면 1(참)을 반환하게 됩니다.
3. NOT 연산자는 완전 반대가 되는 형태로 A값이 1(참)이면 0(거짓)이되고 0(거짓)이되면 1(참)이 됩니다.
//비트 연산자
<< (left shift), >> (right shift), & (비트 AND 연산), | (비트 OR 연산), ^ (비트 XOR 연산), ~ (비트 NOT 연산)
int a = 8;
int b = 9;
비트 연산을 할때는 2진수로 진행합니다.
int a는 1010(2)이 되고 int b는 1001(2)이 됩니다.
1. << (left shift)
a << 2 는 왼쪽으로 2칸 이동한다고 생각하시면 됩니다. 그럼 a는 00001000(2)에서 00100000(2)이 됩니다. a값은 32가 됩니다.
2. >>(right shift)
a >> 2는 오른쪽으로 2칸 이동합니다. 그럼 a는 00001000(2)에서 00000010(2)이 됩니다. a값은 2가 됩니다.
3. &(비트 AND 연산)
a & b 를 구해보면 각 자리마다 a와 b 둘다 1일 경우 1을 반환하게 되고 그 이외 둘중 하나라도 0이 있으면 0을 반환하게 됩니다.
a : 1 0 0 0(2)
& & & &
b : 1 0 0 1(2)
↓ ↓ ↓ ↓
값: 1 0 0 0(2)
값은 = 8이 됩니다.
3. | (비트 OR 연산)
a | b 를 구해보면 a, b 둘중 하나라도 1이 있다면 1을 반환하게 됩니다.
a : 1 0 0 0(2)
| | | |
b : 1 0 0 1(2)
↓ ↓ ↓ ↓
값: 1 0 0 1(2)
값은 = 9가 됩니다.
4. ^ (비트 XOR 연산)
a ^ b 를 구해보면 a, b 두 비트가 서로 다르면 1을 반환, 서로 같으면 0을 반환하게 됩니다.
a : 1 0 0 0(2)
^ ^ ^ ^
b : 1 0 0 1(2)
↓ ↓ ↓ ↓
값: 0 0 0 1(2)
값은 = 1(이)가 됩니다.
5. ~ (비트 NOT 연산)
~a를 구해보면 0이면 1을 반환, 1이면 0을 반환
a : 1 0 0 0(2)
값: 0 1 1 1(2)
값은 = 7(이)가 됩니다.
//만약 연산자들이 여러개 섞여있다면 큰 순서로만 보면 1차연산자 (), [] -> 산술 연산자 -> 관계 연산자 -> 논리 연산자 순으로 계산하시면 됩니다.
//삼항 조건 연산자
int a = 10;
int b = (a < 20) ? 100 : 200; // 삼항 조건 식입니다. 뜻은 a가 20보다 작다면 b에 100이 저장되고 20보다 크면 200이 b에 저장된다는 뜻입니다. 예) 100은 true일때 출력, 200은 false일때 출력
Console. WriteLine(b); // 값은 100이 나온다.
'C#, 유니티 > C# 기초' 카테고리의 다른 글
| [C#] 7. switch문 (0) | 2021.12.28 |
|---|---|
| [C#] 6. if문 (0) | 2021.12.28 |
| [C#] 4. 형식 변환 (0) | 2021.12.28 |
| [C#] 3. 불리언, 소수, 문자, 문자열 형식 (0) | 2021.12.28 |
| [C#] 2. 2진수, 8진수, 10진수, 16진수 (0) | 2021.12.27 |