본문으로 바로가기

3. 연산자

category 프로그래밍/c언어 2017. 9. 22. 23:50

연산자


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