C 프로그래밍 - 4주차 : 연산자
산술 연산자
연산자 | 명칭 | 사용 예 | 설명 |
---|
= | 대입 연산자 | a = 3 | 정수 3을 a에 대입 |
+ | 더하기 | a = 5 + 3 | 정수 5와 3을 더한 값을 a에 대입 |
- | 빼기 | a = 5 - 3 | 정수 5에서 3을 뺀 값을 a에 대입 |
* | 곱하기 | a = 5 * 3 | 정수 5와 3을 곱한 값을 a에 대입 |
/ | 나누기 | a = 5 / 3 | 정수 5를 3으로 나눈 값을 a에 대입 |
% | 나머지값 | a = 5 % 3 | 정수 5를 3으로 나눈 뒤 나머지 값을 a에 대입 |
연산자 | 명칭 | 사용 예 | 설명 |
---|
+= | 대입 연산자 | a += 3 | a = a + 3과 동일 |
-= | 대입 연산자 | a -= 3 | a = a - 3과 동일 |
*= | 대입 연산자 | a *= 3 | a = a * 3과 동일 |
/= | 대입 연산자 | a /= 3 | a = a / 3과 동일 |
%= | 대입 연산자 | a %= 3 | a = a % 3과 동일 |
++ | 증가 연산자 | a++ 또는 ++a | a = a + 1 또는 a = a + 1과 동일 |
— | 감소 연산자 | a— 또는 —a | a = a - 1 또는 a = a - 1과 동일 |
- a++와 ++a의 차이는 증가하는 순서임.
- b = a++ : a를 b에 대입하고 a를 1 증가함
- b = ++a : a를 1 증가하고 b에 대입함
관계 연산자
- 관계 연산자의 결과는 참이나 거짓 중 하나임
- 단독으로 쓰이지는 않고, 조건문이나 반복문에 쓰임
연산자 | 의미 | 설명 |
---|
== | 같다 | 두 값이 동일하면 참 |
!= | 같지 않다 | 두 값이 다르면 참 |
> | 크다 | 왼쪽이 크면 참 |
< | 작다 | 왼쪽이 작으면 참 |
>= | 크거나 같다 | 왼쪽이 크거나 같으면 참 |
⇐ | 작거나 같다 | 왼쪽이 작거나 같으면 참 |
논리 연산자
연산자 | 의미 | 설명 | 사용 예 |
---|
&& | 그리고(AND) | 두 조건 모두 참이어야 참 | (a > 100) && (a < 200) |
|| | 또는(OR) | 두 조건 중 하나만 참이어도 참 | (a > 100) || (a < 200) |
! | 아니다(NOT) | 참이면 거짓, 거짓이면 참 | !(a == 100) |
비트 연산자
- 정수나 문자 등을 이진수로 변환한 후, 각 자리의 비트끼리 연산 수행
연산자 | 명칭 | 설명 |
---|
& | 비트 논리곱(AND) | 둘 다 1이면 1 |
| | 비트 논리합(OR) | 둘 중 하나만 1이면 1 |
^ | 비트 배타적 논리합(XOR) | 값이 같으면 0, 값이 다르면 1 |
~ | 비트 부정 | 1은 0으로, 0은 1로 변경 |
<< | 비트 왼쪽 시프트(이동) | 비트를 왼쪽으로 시프트(이동) |
>> | 비트 오른쪽 시프트(이동) | 비트를 오른쪽으로 시프트(이동) |
-
마스크 : 비트 논리곱(&, AND)를 사용한 방법. 특정 자릿수만 사용하고 싶을 때 사용
- ex. 총 8자리의 비트가 있을 때, 뒤의 4 자리만 사용하고 싶으면 (주어진 변수 & 00001111)
-
비트 부정 연산자는 두 수에 대한 연산이 아니고, 한 수의 비트를 반대로 만듬
- 2의 보수(음수) = {1의 보수(각 비트의 값을 반전한 값) + 1}
-
비트 왼쪽 시프트 : 비트를 왼쪽으로 n자리 이동시킴 = 2n을 곱함
-
비트 오른쪽 시프트 : 비트를 오른쪽으로 n자리 이동시킴 = 2n으로 나눔. 이때 앞에 빈칸은 부호비트로 채워짐 (양수면 0, 음수면 1)
연산자 우선순위
우선순위 | 연산자 | 명칭 |
---|
1 | () [] , → | 1차 연산자 |
2 | + - ++ — ~ * & | 단항 연산자 |
3 | * / % | 산술 연산자 |
4 | + - | 산술 연산자 |
5 | << >> | 비트 시프트 연산자 |
6 | < ⇐ > >= | 비교 연산자 |
7 | == != | 동등 연산자 |
8 | & | 비트 연산자 |
9 | ^ | 비트 연산자 |
10 | | | 비트 연산자 |
11 | && | 논리 연산자 |
12 | || | 논리 연산자 |
13 | ?: | 삼항 연산자 |
14 | = += -= *= /= %= &= ^= |= <⇐ >>= | 대입 연산자 |
15 | , | 콤마 연산자 |