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) -->
조건 연산자 ? : -->
대입 연산자 = += -= *= /= %= <<= >>= <--
순서 연산자 , -->