SECTION 004. 연산자
1. 산술 연산자
1) 산술 연산자
| + | - | * | / | % |
|---|---|---|---|---|
| 덧셈 | 뺄셈 | 곱셈 | 나눗셈 | 나머지 |
2) 증감 연산자
| ++ | -- |
|---|---|
| 증가 연산자 | 감소 연산자 |
-
전치 : 변수 앞에 증감연산자가 오는 형태로, 먼저 변수의 값을 증감시킨 후 연산에 사용한다. (++a, --a)
-
후치 : 변수 뒤에 증감연산자가 오는 형태로, 변수를 연산에 사용한 후 변수의 값을 증감시킨다. (a++, a--)
2. 관계 연산자
- 관계 연산자는 두 수의 관계를 비교하여 참(true) 또는 거짓(false) 을 결과로 얻는 연산자이다.
| == | != | > | >= | < | <= |
|---|---|---|---|---|---|
| 같다 | 같지 않다 | 크다 | 크거나 같다 | 작다 | 작거나 같다 |
- 거짓(false) 은 0, 참(true) 은 1로 사용되지만 0 외의 모든 숫자도 참으로 간주된다.
3. 비트 연산자
- 비트 연산자는 비트별(0,1)로 연산하여 결과를 얻는 연산자이다.
| 연산자 | 의미 | 설명 |
|---|---|---|
| & | and | 모든 비트가 1일 때만 1 |
| ^ | xor | 모든 비트가 같으면 0, 하나라도 다르면 1 |
| | | or | 모든 비트 중 한 비트라도 1이면 1 |
| ~ | not | 각 비트의 부정, 0이면 1, 1이면 1 |
| << | 왼쪽 시프트 | 비트를 왼쪽으로 이동 |
| >> | 오른쪽 시프트 | 비트를 오른쪽으로 이동 |
- 시프트 연산자는 부호를 제외한 전체 비트를 이동합니다.
예제 1) 3 & 2
| 3 | = | 0 | 0 | 1 | 1 | |
|---|---|---|---|---|---|---|
| 2 | = | 0 | 0 | 1 | 0 | |
| & | = | 0 | 0 | 1 | 0 | =2 |
예제 2) 4 | 2
| 4 | = | 0 | 1 | 0 | 0 | |
|---|---|---|---|---|---|---|
| 2 | = | 0 | 0 | 1 | 0 | |
| | | = | 0 | 1 | 1 | 0 | =6 |
예제 3) 5 << 1
| 5 | = | 0 | 1 | 0 | 1 | |
|---|---|---|---|---|---|---|
| <<1 | = | 1 | 0 | 1 | 0 | =10 |
예제 4) 2 << 2
| 2 | = | 0 | 0 | 1 | 0 | |
|---|---|---|---|---|---|---|
| <<2 | = | 1 | 0 | 0 | 0 | =8 |
4. 논리 연산자
- 논리 연산자는 두 개의 논리 값을 연산하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자이다.
| 연산자 | 의미 | 설명 |
|---|---|---|
| ! | not | 부정 |
| && | and | 모두 참이면 참 |
| || | or | 하나라도 참이면 참 |
5. 대입 연산자
- 연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입연산자를 제공한다.
| 연산자 | 예 | 의미 |
|---|---|---|
| += | a += 1 | a = a + 1 |
| -= | a -= 1 | a = a - 1 |
| *= | a *= 1 | a = a * 1 |
| /= | a /= 1 | a = a / 1 |
| %= | a %= 1 | a = a % 1 |
| <<= | a <<= 1 | a = a << 1 |
| >>= | a >>= 1 | a = a >> 1 |
6. 조건 연산자
- 조건 연산자는 조건에 따라 서로 다른 수식을 수행한다.
조건 ? 수식1 : 수식2 ;
- ‘조건’의 수식이 참이면 ‘수식1’, 거짓이면 ‘수식2’를 실행한다.
7. 기타 연산자
| 연산자 | 의미 |
|---|---|
| sizeof | 자료형의 크기를 표시한다. |
| , (콤마) | - 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나, 변수를 정의한다. - 왼쪽에서 오른쪽 순서대로 수생되며, 순서 연산자라 부르기도 한다. |
| (자료형) | - 사용자가 자료형울 변환할 때 사용하는 것으로, cast(캐스트) 연산자라고 부른다. - 변환할 자료형을 괄호 안에 넣어서 변환할 값이나 변수명 앞에 놓는다. > 예) (int)1.3 + (int) 1.4 → 1.3을 int형으로 변환한 값 ‘1’과, 1.4를 int형으로 변환한 값 ‘1’이 더해진 ‘2’가 a에 저장된다. |
8. 연산자 우선순위
- 한 개의 수식에 여러 개의 연산자가 사용되면 기본적으로 아래 표의 순서대로 처리된다.
- 아래 표의 같은 칸에 나열된 연산자는 우선 순위가 같기 때문에 결합 규칙에 따라 화살표 방향으로 차례로 계산된다.
| 분류 | 연산자 | 결합규칙 |
|---|---|---|
| 단항 연산자 | ! (논리not) ~ (비트not) ++ (증가) -- (감소) sizeof (기타) |
<-- |
| 산술 연산자 | * (곱셈) / (나눗셈) % (나머지) | --> |
| + (덧셈) - (뺄셈) | --> | |
| 시프트 연산자 | << (왼쪽시프트) >> (오른쪽시프트) |
--> |
| 관계 연산자 | < <= >= > | --> |
| == != | --> | |
| 비트 연산자 | & (비트and) | --> |
| ^ (비트xor) | --> | |
| | (비트or) | --> | |
| 논리 연산자 | && (논리and) | --> |
| || (논리or) | --> | |
| 조건 연산자 | ? : | --> |
| 대입 연산자 | = += -= *= /= %= <<= >>= | <-- |
| 순서 연산자 | , | --> |