반응형
오늘은 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 |