본문 바로가기
프로그래밍/C언어

C언어 - 연산자

by LostJourney 2024. 5. 9.
반응형

오늘은 C언어의 연산자에 대해 다뤄보고자 한다.

연산자는 연산을 하도록 도와준자. 항이 하나일때는 단항 연산자,  항이 두개일때는 이항 연산자, 여러개일때는 다항 연산자라고 한다.

 

 

산술 연산자

 

#include <stdio.h>

int main() 
{
   int num1 = 1;
   int num2 = 2;
   
   printf("\n==== 산술 연산자 결과 ====₩n");
   // 좌항과 우항을 더한다.
   printf("%d + %d = %d\n", num1, num2, num1 + num2);
   // 좌항에서 우항을 뺀다.
   printf("%d - %d = %d\n", num1, num2, num1 - num2);
   // 좌항과 우항을 곱한다.
   printf("%d * %d = %d\n", num1, num2, num1 * num2);
   // 좌항과 우항을 나눈다.
   printf("%d / %d = %lf\n", num1, num2, num1 / (float)num2);
   // 두항을 나눴을때의 나머지를 출력한다.
   printf("%d %% %d = %d\n", num1, num2, num1 % num2);
}

나누기 연산자 / 의 경우 위는 자료형이 정수형이기 때문에 정수끼리의 사칙연산이다. 따라서 컴퓨터는 계산값도 정수로 한다. 하지만 나누기의 결과값이 실수로 나와야할때  결과값이 제대로 나오지않는 오류가 생길 수 있다. 따라서 변수앞에 (float)을 붙여 실수형으로 바꿔준다. 이를 형변환이라고 한다. 이건 나중에 자세히 다뤄보겠다.


 

비교 연산자

 

#include <stdio.h>

int main() 
{
   int num1 = 1;
   int num2 = 2;
   
   printf("\n==== 비교 연산자 결과 ====₩n");
   // 좌항과 우항이 같을때 참을 출력한다.
   printf("%d == %d = %d\n", num1, num2, num1 == num2);
   // 좌항과 우항이 다를때 참을 출력한다.
   printf("%d != %d = %d\n", num1, num2, num1 != num2);
   // 우항이 크다면 참을 출력한다.
   printf("%d < %d = %d\n", num1, num2, num1 < num2);
   // 좌항이 크다면 참을 출력한다.
   printf("%d > %d = %d\n", num1, num2, num1 > num2);
   // 우항이 크거나 같다면 참을 출력한다.
   printf("%d <= %d = %d\n", num1, num2, num1 <= num2);
   // 좌항이 크거나 같다면 참을 출력한다.
   printf("%d >= %d = %d\n", num1, num2, num1 >= num2);
}

 


 

논리 연산자

 

include <stdio.h>

#int main() 
{
   bool num1 = true;
   bool num2 = false;
   
   printf("\n==== 논리 연산자 결과 ====₩n");
   // 좌항과 우항이 둘다 참일경우 참을 출력
   printf("%d && %d = %d\n", num1, num2, num1 && num2);
   // 좌항과 우항 둘중 하나라도 참일경우 참을 출력
   printf("%d || %d = %d\n", num1, num2, num1 || num2);
   // 참이 아닐경우 참을 출력 (단항 연산자)
   printf("!%d = %d\n", num1, !num1);
}

 


 

증감 연산자

 

include <stdio.h>

int main() 
{
   int num1 = 1;
   int num2 = 2;
   
   printf("\n==== 증감 연산자 결과 ====₩n");
   // 그 데이터에 1을 더한다. 이때 ++및 --가 앞에 붙으면 계산후 출력, 뒤에 붙으면 출력 후 계산한다.
   printf("++%d, --%d\n", ++num1, --num2);
   printf("%d++, %d--", num1++, num2--);
}

 


 

비트 연산자

 

include <stdio.h>

int main() 
{
   int num1 = 3;
   int num2 = 4;
   
   // 데이터를 2진수로 쪼개서 계산한다.
   printf("\n==== 비트 연산자 결과 ====₩n");
   // 비트 AND연산자 : 좌항과 우항의 2진수를 한자리씩 계산한다. 둘다 참이면 1, 거짓이면 0으로 출력해 나열한 후 10진수로 바꾼다.
   printf("%d & %d = %d\n", num1, num2, num1 & num2);
   // 비트 OR연산자 : &과 마찬가지로 계산하되 둘중 하나라도 참이면 1, 둘다 거짓이면 0을 출력한다.
   printf("%d | %d = %d\n", num1, num2, num1 | num2);
   // 비트 XOR연산자 : &과 마찬가지로 계산하되 둘이 서로 다르면 1, 같으면 0을 출력한다.
   printf("%d ^ %d = %d\n", num1, num2, num1 ^ num2);
   // 비트 NOT연산자 : 비트를 전부 뒤집어 계산한다.
   printf("~%d = %d\n", num1, ~num1);
   // 비트를 쪼갠 후 우로 n만큼 이동한 후 10진수로 바꾼다.
   printf("%d << 2 = %d\n", num1, num1 << 2);
   // 비트를 쪼갠 후 좌로 n만큼 이동한 후 10진수로 바꾼다.
   printf("%d >> 2 = %d\n", num1, num1 >> 2);
}

 


 

조건 연산자

 

#include <stdio.h>

int main()
{
   int num1 = 1;
   int num2 = 2;
   
   printf("\n==== 조건 연산자 결과 ====₩n");
   // ? 앞의 조건이 참일경우 : 을 기준으로 왼쪽의 값을 출력하고 거짓일 경우 오른쪽의 값을 출력한다.
   printf("(%d < %d) ? : = %d\n", num1, num2, (num1 < num2) ? num1 : num2);
}

 


 

연산자는 앞으로도 많이 활용될 코드이다 꼭 기억해둘 수 있도록 해두자

반응형

'프로그래밍 > C언어' 카테고리의 다른 글

C언어 - 제어문  (1) 2024.06.16
C언어 - 반복문  (3) 2024.06.10
C언어 - 조건문  (0) 2024.06.04
C언어 - 입력과 출력  (0) 2024.06.02
C언어 - 변수와 자료형  (1) 2024.05.04