연산자
int i;
i = 5;
좌변(피연산자) 연산자 우변(피연산자)
산술연산자
연산자 |
이름 |
사용 방법 |
+ |
덧셈 |
a + b |
- |
뺄셈 |
a - b |
* |
곱셈 |
a * b |
/ |
나눗셈 |
a / b |
% |
나머지 |
a % b |
++ |
증가 |
a++, ++a |
-- |
감소 |
a--, --a |
int m = 5;
double d = (double) m/2;
---> int형을 double형으로 변환하여 출력이 가능 실수 2.5가 출력
증가연산자 산술연산자
ex ) a = 1;
b = 1;
결과가 2로써 출력되지만
b = a++ : a+1을 계산한후 그 값을 b에 대입
b = ++a : b+a을 계산한 뒤 1을 증가 시켜서 출력
복합 대입 연산자
+ , - , *, %과 같은 산술 연산자에 이어서 =를 쓰면 좌변과 우변의 산술 결과를 좌변에 대입하는 복합 대입 연산자가 된다.
연산자 |
의미 |
사용 방법 |
+= |
더해서 대입 |
a+=2 (a=a+2)와 같음 |
-= |
빼서 대입 |
a-=2 (a=a-2)와 같음 |
*= |
곱해서 대입 |
a*=2 (a=a*2)와 같음 |
/= |
몫을 대입 |
a/=2 (a=a/2)와 같음 |
%= |
나머지를 대입 |
a%=2 (a=a%2)와 같음 |
비교연산자
이름 그래로 좌변과 우변의 값을 비교하는 연산자
연산자 |
의미 |
사용 방법 |
== |
같다 |
a == b (a와 b는 같다) |
!= |
같지 않다 |
a !=b (a와 b는 같지 않다.) |
> |
크다 |
a > b (a는 b보다 크다) |
< |
작다 |
a < b (a는 b보다 작다) |
>= |
이상 |
a >= b (a는 b이상) |
<= | 이하 | a <= b (a는 b이하) |
논리값
int i = 5; r;
i == 5 연산결과는 참 , 1이 반환
i == 3 연산결과는 거짓, 0이 반환
int i=5, r;
r = (i ==5); i의 값은 5이므로 연산결과는 1이 저장, 변수 r에 1을 대입
r = (i <=3); i의 값은 5이므로 연산결과는 0이 저장, 변수 r에 0을 대입
조건 연산자
조건 ? 식1: 식 2
이 연산자는 조건 부분의 연산 결과가 참일 때는 식1의 값을 반환, 거짓일 때는 식2값을 반환
int i = 5, r;
r = (i == 5) ? 1 : 2;
===>조건 i ==5가 참이므로 식1의 값 1을 반환해준다.
논리 연산자
참 또는 거짓이라는 논리값끼리 계산하여 그결과값을 논리값으로 표현
연산자 |
이름 |
사용방법 |
&& |
논리곱 |
a&&b a,b둘다 참이면 참, 그외는 거짓 |
|| |
논리합 |
a||b a와 b 둘중 하나가 참이면 참, 그외는 거짓 |
! |
부정 |
!a a가 참이면 거짓, 거짓이면 참으로 만듦. |
비트 연산자
연산자 |
사용방법 |
& |
비트곱 a와 b 둘다 1이면 1, 그외는 0 |
| |
비트합 a와 b중 어느 하나가 1이면, 1, 그외는 0 |
^ |
비트 배타 논리합 a와 b값이 다르면 1, 그 외는 0 |
~ |
비트 부정 a가 1이면 0, 0이면 1 |
<< |
왼쪽 시프트 a << n a를 b비트 왼쪽으로 이동 |
>> | 오른쪽 시프트 a >> n a를 b비트 오른쪽으로 이동 |
비트 시프트 연산
시프트란 비트열을 좌우로 이동시키는 것을 말한다.
왼쪽 시프트는 빈 곳을 0으로 채운다.
101을 2비트 왼쪽으로 시프트
0 0 0 0 0 1 0 1
00 0 0 0 1 0 1 0 0 파란색부분에 0으로 채워짐
a >> b = a *2^b
오른쪽 시프트에서는 빈곣을 부호 비트(선두 비트)와 똑같은 값으로 채운다.
101을 1비트 오른쪽으로 쉬프트 101을 2비트 오른쪽으로 쉬프트
0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 빨간색부분을 오른쪽으로 옮긴뒤, 남은 앞쪽부분을 부호비트로 채움
0 0 0 0 0 0 0 1 0 /1 1 1 1 1 1 1 1 1 0 / 1 1
빈곳은 부호비트 빈곳은 부호비트
'프로그래밍 > c언어' 카테고리의 다른 글
if문,for문,while문,do while문 , switch문, break, continue문 (1183) | 2017.11.06 |
---|---|
2.데이터형과 입출력 (523) | 2017.08.26 |
1. C언어 기본 (506) | 2017.08.23 |