Pink Transparent Star

C#/개념 공부

[ 내일배움캠프 ] TIL.09 - 연산자

채유나 2024. 4. 25. 20:35
728x90

 

C# 에서는 수식 연산자, 논리 연산자, 조건 연산자 등 다양한 연산자를 제공하고 있으며 아래의 표로 연산자의 종류에 대해 정리를 하였습니다.

연산자 타입 연산자
산술 연산자 +, -, *, /, %
대입(할당) 연산자 =, +=, -=, *=, /=, %=
증감 연산자 ++, --
논리 연산자 && (And), || (Or), ! (Not)
관계/비교 연산자 <, >, ==, !=, >=, <=
비트 연산자 & (AND), | (OR), ^ (XOR)
Shift 연산자 >>, <<
조건 연산자 ?

 

🔷 산술 연산자

기본적이면서 가장 많이 사용하는 사칙연산입니다. 사칙연산 법칙과 같이 곱하기, 나누기, 나머지 계산이 먼저 계산이 되며 그다음 더하기, 빼기 순으로 우선순위가 됩니다. 

static void Main(string[] args)
{
    int a = 3;
    int b = 5;

    Console.WriteLine($"더하기 : { a + b }"); //8 출력
    Console.WriteLine($"빼기 : {a - b}"); //-2 출력
    Console.WriteLine($"곱하기 : {a * b}"); //15 출력
    Console.WriteLine($"나누기 : {a / b}"); //0 출력
    Console.WriteLine($"나누기 : {a % b}"); //3 출력
}

 

 

일반적인 사칙 연산과 동일하며 괄호를 사용하여 우선순위를 변경 할 수 있습니다.

 

🔷 대입(할당) 연산자

평소 수학에서는 =은 같다의 의미이지만 컴퓨터에서의 =은 대입을 의미합니다.

= 왼쪽에 있는 변수에 값을 대입
+= 왼쪽에 있는 값과 오른쪽에 있는 변수 또는 데이터를 덧셈 후 왼쪽에 있는 변수에 대입
-= 왼쪽에 있는 값과 오른쪽에 있는 변수 또는 데이터를 뺼셈 후 왼쪽에 있는 변수에 대입
*= 왼쪽에 있는 값과 오른쪽에 있는 변수 또는 데이터를 곱셈 후 왼쪽에 있는 변수에 대입
/= 왼쪽에 있는 값과 오른쪽에 있는 변수 또는 데이터를 나눗셈 후 왼쪽에 있는 변수에 대입
%/ 왼쪽에 있는 값과 오른쪽에 있는 변수 또는 데이터를 나머지 연산 후 왼쪽에 있는 변수에 대입
  static void Main(string[] args)
  {
      int a = 3;
      int b = 5;

      b = a;
      Console.WriteLine(b); //3
      b += a; //b = b + a
      Console.WriteLine(b); //6
      b -= a; //b = b - a
      Console.WriteLine(b); //3            
      b *= a; //b = b * a
      Console.WriteLine(b); //9           
      b /= a; //b = b / a
      Console.WriteLine(b); //3           
      b %= a; //b = b % a
      Console.WriteLine(b); //0
  }

 

🔷 증감 연산자

1씩 증가 또는 감소 시키는 연산자로 증감 연산자의 위치와 순서에 따라 결과가 달라진다.

x++ 값을 1 증가시킨 후에 연산
++x 연산을 진행 후 값을 1 증가
 x-- 값을 1 감소시킨 후에 연산
--x 연산을 진행 후 값을 1 감소

 

🔷 관계/비교연산자

두 값의 크기를 비교하는 연산자로 Bool형인 True 또는 False로 나타낸다.

== 왼쪽 변수와 오른쪽 변수가 같으면 True 틀리면 False를 반환
!= 왼쪽 변수와 오른쪽 변수가 다르면 Ture 같으면 False를 반환
> , < 왼쪽 변수가 오른쪽 변수보다 크거나 작으면 True, False를 반환
>=. <= 왼쪽 변수가 오른쪽 변수보다 크거나, 작거나, 같으면 True, False를 반환
static void Main(string[] args)
{
    int x = 28;

    Console.WriteLine(x == 28); //True
    Console.WriteLine(x != 28); //False
    Console.WriteLine(x > 28); //False
    Console.WriteLine(x >= 28); //True
    Console.WriteLine(x < 28); //False
    Console.WriteLine(x <= 28); //True
}

 

🔷 논리연산자

And, OR, Not으로 표현

&& 왼쪽과 오른쪽이 모두 True일 경우 True 반환 아니면 False 반환
|| 왼쪽 또는 오른 쪽이 True 일 경우 True를 반환  아니면 False 반환
! 논리 값에 반대 되는 값을 반환 
static void Main(string[] args)
{
    bool t = true;
    bool f = false;

    Console.WriteLine(t && f); //false
    Console.WriteLine(t || f); //True
    Console.WriteLine(!t); //false
}

 

🔷 비트연산자

논리연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자이다.

& 대응 되는 비트가 모두 1이면 1을 반환
| 대응 되는 비트가 하나라도 1이면 1을 반환
^ 대응 되는 비트가 서로 다르면 1을 반환 
*= 비트가 1이면 0 , 0 이면 1로 반환

 

🔷 Shift연산자

정수 데이터에 담겨있는 메모리의 비트를 왼쪽 또는 오른쪽으로 지정한 비트만큼 이동시키는 연산자이다.

 

<<,>> 주어진 수를 2진수로 변경 후 2진수를 일정 칸 만큼 왼쪽 또는 오른쪽으로 이동
<< : 변수 값 곱하기 2의 거듭제곱
>> : 변수 값 나누기 2의 거듭제곱
 static void Main(string[] args)
 {
     int num1 = 2;           
     int num2 = 8;
     Console.WriteLine(num1 << 2); //8
     Console.WriteLine(num2 >> 2); //2
 }

 

그림으로 표현할 경우 다음과 같이 나타낼 수 있다.

 

728x90