연산자
C에서 사용하는 연산자는 산술 연산자, 대입 연산자, 증감 연산자, 관계 연산자와 논리연산자, 비트 연산자가 있습니다.
- 산술 연산자
산술연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 등을 수행하는 연산자로 아래 표와 같은 연산자 들이 있습니다. 덧셈과 뺄셈은 동일하고 곱셈과 나눗셈은 컴퓨터 계산기에서 사용하는 것과 같이 각각 '*', '/'를 사용합니다.
수학 | C언어 |
사용 예 |
+ |
+ |
a+b |
- |
- |
a-b |
× |
* |
a*b |
÷ | / | a/b |
정수에서만 가능한 나머지 연산도 있습니다. '%' 기호를 사용하는데 4%3 을 할경우 나머지인 1이 출력됩니다. 추가로 %기호를 printf함수로 출력을 하려면 다음과 같이 %를 두개 써줘야합니다.
printf("%d %% %d");
- 대입 연산자
대입연산자는 간단합니다. 변수에 값을 저장하거나, 변경할때 사용합니다.
변수=식; 과같이 사용하며, a=7; a=a+1; 과같이 사용합니다.
- 증감 연산자
증감 연산자는 증가 연산자와 감소 연산자가 있습니다. 증가 연산자는 ++를 이용해 값을 1을 증가시키고 감소 연산자는 --를 이용해 값을 1 감소시킵니다. 주로 조건문이나, 반복문에서 많이 사용합니다. 증감 연산자는 전위 연산과 후위 연산이 있습니다. 아래 코드를 통해 살펴보겠습니다.
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
++와 --를 앞에쓰면 전위연산 뒤에쓰면 후위연산이라고 부르는데, 전위연산은 계산을 먼저하고 값을 저장하고, 후위연산은 계산하기전에 값을 저장 한 후 연산합니다. 그래서 a에서의 후위연산이라 x=10 a=11 b에서는 전위연산이라 x=11 b=11이 저장된걸 확인 할 수 있습니다.
- 관계 연산자
관계 연산자는 왼쪽과 오른쪽 항을 비교하는 연산자로 아래 표와 같습니다. a와 b가 같다고 할때 "=="으로 쓰는 이유는 대입연산자에서 "="기호를 사용하기 때문입니다. 관계연산자 에서 조건을 만족하면 True인 1을 거짓이면 Fasle인 0을 반환합니다.
|
수학 |
C 언어 |
A가 B보다 작다 |
A < B |
A < B |
A가 B보다 크다 |
A > B |
A > B |
A와 B가 같다 |
A = B |
A == B |
A와 B가 같지 않다. |
A ≠ B |
A != B |
A가 B보다 작거나 같다. |
A ≦ B |
A <= B |
A가 B보다 크거나 같다. |
A ≧ B |
A >= B |
- 논리 연산자
논리 연산자 |
표기 |
의미 |
AND |
A && B |
A와 B 모두 참이다 |
OR |
A || B |
A또는 B가 참이다 |
NOT |
!A |
A는 거짓이다 |
AND연산자는 왼쪽항이 거짓인 경우, 오른쪽 항을 계산하지 않으며, OR연산자 역시 왼쪽항이 참이면 오른쪽 항을 계산하지 않습니다.
- 비트 연산자
비트 연산자 |
표기 | 의미 |
비트 단위 AND 연산 |
& | 비교하는 비트가 모두 1일경우 1 |
비트 단위 OR 연산 |
| | 비교하는 비트중 하나라도 1일경우 1 |
비트단위 XOR 연산 |
^ | 비교하는 비트가 다를경우 1 같을경우 0 |
비트단위 NOT 연산 |
~ | 비트를 반전 1->0, 0->1 |
왼쪽으로 시프트 | << | 왼쪽으로 시프트하면 시프트하는만큼 비트가 이동 |
오른쪽으로 시프트 |
>> | 왼쪽으로 시프트하면 시프트하는만큼 비트가 이동 |
시프트 연산은 왼쪽으로 1번 시프트할경우 2배 증가되며 오른쪽은 2배 감소합니다.
* 출처 : 한국기술교육대학교 온라인평생교육원 C 프로그래밍_1
스타일 C프로그래밍 저.김종훈,김종진 출.WellBook
'언어 > C' 카테고리의 다른 글
[C] 반복문 (0) | 2016.12.18 |
---|---|
[C] 조건문 (0) | 2016.12.17 |
[C] 입출력함수, 기본자료형, 형변환 (0) | 2016.12.15 |
[C] C 기본개념(2) 라이브러리와 변수 (0) | 2016.12.12 |
[C] C 기본개념 및 실습환경 (0) | 2016.12.07 |