호빵의 IT 개발소

[C#] 5. 데이터 연산 본문

C#, 유니티/C# 기초

[C#] 5. 데이터 연산

호빵Stack 2021. 12. 28. 20:24

//산술 연산자

+ (더하기), - (빼기), * (곱하기), / (나누기), % (나머지) 

※ 나머지에 대한 개념이 조금 어려우신분들이 있는데 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
Comments