목차
일반 수학적 표현과C언어 수식은다릅니다. C에서는 연산자 생략이 불가능해요.
예를들어 '철수야물떠와라'이러면 철수가 알아서 물을 잘 떠오겠죠?
근데 컴퓨털한테는 '컴퓨터야 너의 위치를 기준으로 x축으로5만큼 떨어진 곳에서 100ml컵을이용해 삼다수를 떠와'이런식으로 명령해줘야 해요.
수학에서는 2a+3a=5a이잖아요? 컴퓨터는 B=2*a+5*a이렇게 명령해줘야합니다. 앞서 포스팅에서 언급햇듯 컴퓨터에서 =는 같다'equal'의뜻이 아니라 '넣는다'입니다.
이와같이 수학과 의미가 다른 연산자를 소개할게요.
산술 연산자 (Arithmetic Operators)
- +: 덧셈
- -: 뺄셈
- \*: 곱셈
- /: 나눗셈
- %: 나머지
관계 연산자 (Relational Operators)
- ==: 같다
- !=: 같지 않다
- >: 크다
- <: 작다
- >=: 크거나 같다
- <=: 작거나 같다
논리 연산자 (Logical Operators)
- &&: 논리 AND
- ||: 논리 OR
- !: 논리 NOT
비트 연산자 (Bitwise Operators)
- &: 비트 AND
- |: 비트 OR
- ^: 비트 XOR
- ~: 비트 NOT
- <<: 왼쪽 시프트
- >>: 오른쪽 시프트
할당 연산자 (Assignment Operators)
- =: 값 할당
- +=: 더하고 할당
- -=: 빼고 할당
- \=*: 곱하고 할당
- /=: 나누고 할당
- %=: 나머지 할당
우리는 기초를 배우는거니 산술연산자와 관계연산자, 논리연산자를 배워보도록 해요.(빨간색으로 표시함)
#include<stdio.h>
int main(void)
{
int x, y, result;
printf("enter ingeger 2\n");
scanf("%d %d", &x, &y);
result = x + y;
printf("%d + %d=%d\n", x, y, result);
result = x - y;
printf("%d - %d=%d\n", x, y, result);
result = x * y;
printf("%d * %d=%d\n", x, y, result);
result = x / y;
printf("%d / %d=%d\n", x, y, result);
result = x % y;
printf("%d %% %d=%d\n", x, y, result);
return 0;
}

여기서 잠깐 볼 코드!
result = x % y;
printf("%d %% %d=%d\n", x, y, result);
%%가 두개지요? %를 하나만쓰면

이런식으로 출력됩니다. C 언어에서 % 문자는 문자열 포맷에서 특별한 의미를 갖기 때문에, 실제 % 문자를 출력하려면 %%를 사용해야 합니다. 즉, printf 함수에서 %%는 하나의 %로 해석되어 출력됩니다. 이해되셨죠?
다음은 증감연산에대해 설명할게요. 증감연산자 내용은 그리 대단한건없고, 변수의 값을 1씩 증가시키거나 감소시키는 데 사용되는 연산자입니다.
증감연산자의 종류라고 표를 정리해주긴 하는데, 외울필요까진없고 이해하고넘어가시면 됩니다. 전위연산자는 먼저 1값을 증가시키고 후위연산자는 나중에 1씩증가시킵니다. 예제를 보면서 이해하죠.
- 증가 연산자 (++): 변수의 값을 1 증가시킵니다.
- 전위 증가 연산자 (prefix increment): ++x
- 후위 증가 연산자 (postfix increment): x++
- 감소 연산자 (--): 변수의 값을 1 감소시킵니다.
- 전위 감소 연산자 (prefix decrement): --x
- 후위 감소 연산자 (postfix decrement): x--
int x = 5;
int y;
// 전위 증가 연산자
y = ++x; // x는 먼저 증가하고, y는 6이 됩니다.
printf("x = %d, y = %d\n", x, y); // 출력: x = 6, y = 6
x = 5; // x를 다시 5로 초기화
// 후위 증가 연산자
y = x++; // y는 먼저 할당되고, x는 이후 증가합니다.
printf("x = %d, y = %d\n", x, y); // 출력: x = 6, y = 5
x = 5; // x를 다시 5로 초기화
// 전위 감소 연산자
y = --x; // x는 먼저 감소하고, y는 4가 됩니다.
printf("x = %d, y = %d\n", x, y); // 출력: x = 4, y = 4
x = 5; // x를 다시 5로 초기화
// 후위 감소 연산자
y = x--; // y는 먼저 할당되고, x는 이후 감소합니다.
printf("x = %d, y = %d\n", x, y); // 출력: x = 4, y = 5
다음은 부동 소수점 연산자입니다.
부동소수점 연산에서는 자릿수 차이로 인해 정확한 비교가 어려운 경우가 많기 때문에, fabs 함수를 사용하여 두 값의 차이를 구하고 그것이 특정 작은 값보다 작은지를 확인합니다. 이를 통해 두 부동소수점 값이 거의 같은지를 비교합니다.
예를 들어, fabs(a - b) < 0.0001은 a와 b의 차이가 0.0001보다 작은지를 확인하여, 사실상 a와 b가 같은지를 확인하는 방법입니다. 이는 일반적인 부동소수점 비교에서 오차를 고려한 방법입니다.
#include<stdio.h>
#include<math.h>
int main(void)
{
double a, b;
a = (0.3 * 3) + 0.1;
b = 1;
printf("a==b의 결과 : %d\n", a == b);
printf("fabs(a-b)<0.00001의결과 : %d\n", fabs(a-b) < 0.0001);
return 0;
}
fabs는 math라이브러리에 있는 함수이므로 math.h를 참조해야합니다. #include<math.h>
마지막으로 논리연산자입니다.
논리 연산자는 주로 조건문과 반복문에서 사용됩니다.
논리 연산자 종류
- AND 연산자 (&&): 두 조건이 모두 참일 때 참을 반환합니다.
- OR 연산자 (||): 두 조건 중 하나라도 참일 때 참을 반환합니다.
- NOT 연산자 (!): 조건이 참이면 거짓을, 거짓이면 참을 반환합니다.
나중에 조건문과 반복문을 포스팅할때 더 쉽게 이해하실 수있을거에요.
#include <stdio.h>
int main(void) {
int a = 5, b = 10, c = 0;
// AND 연산자
if (a < b && b > c) {
printf("AND 연산자: 두 조건이 참입니다.\n");
}
// OR 연산자
if (a < b || b < c) {
printf("OR 연산자: 하나 이상의 조건이 참입니다.\n");
}
// NOT 연산자
if (!(a > b)) {
printf("NOT 연산자: 조건이 거짓입니다.\n");
}
return 0;
}
예제코드가 이해안가시면 그냥 넘기셔도 됩니다.
오늘은 여러 연산자들에대해 소개했는데 사실 연산자는 프로그래밍하면서 체화시켜야 하는 부분입니다.
대략적으로라도 이해하셨으면 성공입니다!
'IT' 카테고리의 다른 글
기초컴퓨터프로그래밍 C언어(5)-조건문 (3) | 2025.01.02 |
---|---|
스마트그리드란? - 포스터 공모전(1) (1) | 2025.01.02 |
기초컴퓨터프로그래밍 C언어(3)-기호상수, 진법변환, 데이터형 크기 (1) | 2024.12.30 |
기초컴퓨터프로그래밍 C언어(2)-데이터형(정수,실수,int,float등) (1) | 2024.12.30 |
기초컴퓨터프로그래밍 C언어(1) (0) | 2024.12.30 |