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