연산자는 프로그래밍 전반에 걸쳐 사용되며, 필수적인 요소라고할 수 있다
연산자는 무엇인지, 어떤 종류가 있는지 알아보자!
연산자란?
식(expression)은 프로그램에서 컴퓨터가 수행해야 할 기본적인 작업 명령을 설정하는데 사용되며, 연산자는 식을 구성하는 기본 단위로 사용된다[1].
연산자의 종류와 우선순위
하나의 수식에 여러 개의 연산자가 사용되면 기본적으로 다음의 순서대로 처리된다.
순서가 같은 연산자는 결합규칙에 따른다
대분류 | 연산자 구분 | 연산자 종류 | 결합규칙 | 우선순위 |
단항 연산자 | 단항 연산자 | ! ~ ++ -- sizeof | ⟵ | ⬆︎ 높음 낮음 ⬇︎ |
이항 연산자 | 산술 연산자 |
* / % | ⟶ |
|
+ - | ||||
시프트 연산자 | << >> | |||
관계 연산자 |
< <= > >= | |||
== != | ||||
비트 연산자 | & ^ | |
|||
논리 연산자 | && || |
|||
삼항 연산자 | 조건 연산자 | ? : | ⟶ | |
대입 연산자 | 대입 연산자 | = += -= *= /= %= <<= >>= 등 | ⟵ | |
순서 연산자 | 순서 연산자 | , | ⟶ |
1. 산술 연산자
산술 계산에 사용되는 연산자를 말한다.
연산자 | 의미 | 비고 |
+ | 덧셈 | |
- | 뺄셈 | |
* | 곱셈 | |
/ | 나눗셈 | |
% | 나머지 | |
++ | 증가 연산자 | 전치 : 먼저 변수 값을 증감 시킨 후 변수를 연산에 사용한다 (++a, --a) 후치 : 먼저 변수를 연산에 사용한 후 변수의 값을 증가시킨다 (a++, a--) |
-- | 감소 연산자 |
예제
c = 4, b = 3 으로 선언 되었을 때, 다음의 연산을 해보자
c = ++b / b++;
- 첫번째 b의 초기값은 3이고, 전치 증가 연산을 수행하면 4가된다.
- 두번째 b는 1. 의 연산을 통해 4가 되었고, 후치 증가 연산이므로 연산이 끝난 후 증가된다.
- /(나눗셈) 을 수행하면 c의 값은 4/4 = 1 이된다.
- 연산이 끝난후 b의 값은 후치 증가 연산에 의해 5가 된다.
2. 관계 연산자
두 수의 관계를 비교하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자이다.
- 거짓은 0, 참은 1로 사용되나 0이외 모든 숫자도 참으로 간주된다.
연산자 | 의미 |
== | 같다 |
!= | 같지않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
*왼쪽을 기준으로 해석한다
3. 비트 연산자
연산자 | 의미 | 비고 |
& | and | 모든 비트가 1일 때만 1 |
^ | xor | 모든 비트가 같으면 0, 하나라도 다르면 1 |
| | or | 모든 비트 중 한 비트라도 1이면 1 |
~ | not | 각 비트의 부정 |
<< | 왼쪽 시프트 | 비트를 왼쪽으로 이동 |
>> | 오른쪽 시프트 | 비트를 오른쪽으로 이동 |
예제
정수형 변수 a = 5, b = 7 로 선언되었을 때, 다음의 연산을 해보자.
➀ a & b
➁ b << 3
➀ & 는 두비트가 모두 1일 때만 1이 되는 비트 연산자이다.
C 언어에서 정수형 변수는 4바이트(32비트) 이므로 각 변수의 값을 4바이트 이진수로 변환한 다음 비트별로 연산한다.
5 = 0 0 0 0 ... 0 1 0 1
7 = 0 0 0 0 ... 0 1 1 1
& 0 0 0 0 ... 0 1 0 1
➁ << 는 왼쪽 시프트 연산자이므로, b에 저장된 값을 왼쪽으로 3비트 이동시킨 다음 다시 저장시킨다.
7 = 0 0 0 0 ... 0 1 1 1
<< 3 수행
0 0 0 0 ... 0 0 1 1 1 0 0 0 = 56
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'를 실행한다.
예제
a = 1, b = 2 와 같이 선언되었을 때, 다음의 연산을 수행해보자.
b *= a > b ? a : b;
'조건' 부분을 수행하면 a 가 b 보다 작으므로 false 이다. 따라서 '수식2'가 적용되어
b *= b 가되고,
이부분은 b = b * b 이므로 4 가된다.
7. 기타 연산자
연산자 | 의미 |
sizeof | 자료형의 크기를 표시한다. |
,(콤마) | 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의한다. 왼쪽에서 오른쪽으로 순서대로 수행되며, 순서 연산자라 부르기도 한다. |
(자료형) | 사용자가 자료형을 다른 자료형으로 변환할 때 사용하는 것으로, case(캐스트) 연산자라고 부른다. 예) a = (int)1.3 + (int) 1.4; 1.3 과 1.4 를 정수형으로 변환하면 둘다 1이 되므로 a 는 2가 된다. |
이번 포스팅에서는 연산자의 종류와 의미등에 대해 알아봤다.
연산자는 프로그래밍을 하면서 자연스럽게 익혀지니,
너무 외우려고 하지말고 모르는것만 찾아보면서 배우자!
출처
자료 참고:
시나공 정보처리기사 필기 2022를 참고하여 작성되었습니다
[1] http://prof.dongju.ac.kr/syhong/public_html/teaching/c/c04.htm
'프로그래밍,Tools' 카테고리의 다른 글
맥(Mac) 에서 .rar 파일 압축 해제 하기 (0) | 2022.05.17 |
---|
댓글