박가방

연산자 연산 순위 본문

프로그램 언어

연산자 연산 순위

박가방 2023. 2. 3. 18:43

1. 산술 연산자

연산자 의미 비고
+ 덧셈  
- 뺄셈  
* 곱셈  
/ 나눗셈  
% 나머지  
++ 증가 연산자 전치 : ++a, --a 형태로 먼저 변수의 값을 증감 시킨 후 변수를 연산에 사용.
-- 감소 연산자 후치 : a++, a-- 형태로 먼저 변수를 연산에서 사용 한 후 변수 값 증감. 

 1.1 산술연산 예

(int a=2, b=3, c=4;)

문제1 : a = 10 ++a 
  1. ++a에서 a의 초기 값이 2이며, 전치 증가 연산자 이므로 연산 전 값이 증가하여 '2' -> '3' 이 됨. 
  2. 즉 a = 10 + 3  =13
문제2 : b = 10% c++
  1. c++에서 c의 초기 값은 4이며, 후치 증가 연산자 이므로 연산에 사용되는 값은 '4'
  2. b = 10% 4 이므로 결과는 b = 2, 그리고 c는 후치 증가 연산자에 의해 '4' -> '5'
문제3 :  c = ++a * b++ 
1. ++a에서 a의 초기 값은 2이며, 전치 증가 연산자 이므로 연산 전 값이 증가하여 '2' -> '3'이 됨.
2. b++에서 b의 초기 값은 3이며, 후치 증가 연산자 이므로 연산 에 사용되는 값은 '3'
3. 따라서 c = 3 * 3 = 9,이며 b 는 후치 증가 연산자에 의해 '3' -> '4'

2 관계 연산자(Relation Operator)

- 비교 연산자(Comparison Operator)라고도 함.

연산자 의미
== 같다
!= 같지 않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

 

3. 비트 연산자(Bitwise Operator)

연산자 의미 비고
& and 모든 비트가 1일 때만 1
| or 모든 비트 중 한비트라도 1이면 1
^ xor(exclusive or) 모든 비트가 같으면 0, 하나라도 다르면 1
~ not 각 비트의 부정,  '1'이면 '0',  '0'이면 '1'
<< left shift 비트를 왼쪽으로 이동
>> right shift 비트를 오른쪽으로 이동

 

4. 논리 연산자(Logical Operator)

연산자 의미 비고
! not 부정
&& and 모두 참(True)이면 참
| or 하나라도 참이면 참

 

5. 대입 연산자(Assignment Operator)

연산자 예시 의미
= a = 1 C의 경우 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
>>= a >>= 1 a = a >> 1

 

6. 조건 연산자(Conditional Operator)

- 삼항 연산자(Ternary Operator)로 부르기도 한다.

형태 예시  비고
조건 ? 수식1 : 수식2; c = a > b ? a : b '조건'의 수식이 참이면 '수식1'을, 거짓이면 '수식2'를 실행.

6.1 조건 연산자 예시

(int a=1, b=2)

문제 1. b *= a > b ? a : b;
1. 관계연산자 >가 사용된 a > b 에서 1 > 2는 거짓(False)이므로, 수식 2를 실행.
2. b *= b  ---> b = b * b  = 2 * 2 = 4

 

7. 순서 연산자

연산자 의미
,(콤마) 콤마로 구분하여 한줄에 두개 이상의 수식을 작성하거나 변수를 정의
왼쪽에서 오른쪽 순서대로 수행됨.

 

**8. 연산자 우선순위

대분류 중분류 연산자 결합규칙 우선순위
단항연산자 단항 연산자 !   ~   ++   --   sizeof <--- 상대적으로(1)
이항연산자 산술 연산자 *   /   %  ---> 2
+   - 3
시프트 연산자 <<   >> 4
관계 연산자 <<   >> 5
==   != 6
비트 연산자 &
^
|
7
논리 연산자 &&
||
8
삼항 연산자 조건 연산자 ? : ---> 9
대입 연산자 대입 연산자 = += -= *= /= %= <<= >>= 등 <-- 10
순서 연산자 순서 연산자 , --> 11

 

'프로그램 언어' 카테고리의 다른 글

C/C++ JAVA Python 데이터 타입 비교  (0) 2023.02.02