자료형이 그릇이라면 연산자는 숟가락, 젓가락과 같은 역할.
- 산술연산자
- 다른 데이터형과의 연산이 있을 경우 자동으로 형변환이 일어난다.
- 좀 더 메모리를 차지하는 쪽으로 형변환이 일어난다.
- 비교연산자와 논리연산자.
화면 캡처: 2010-05-22, 오후 6:53
화면 캡처: 2010-05-22, 오후 6:54
화면 캡처: 2010-05-22, 오후 7:12
화면 캡처: 2010-05-22, 오후 7:13
화면 캡처: 2010-05-22, 오후 7:13
화면 캡처: 2010-05-22, 오후 7:21
화면 캡처: 2010-05-22, 오후 7:22
- 비트연산자
데이터를 비트별로 처리할 수 있는 연산자를 의미
AND , OR , XOR 의 기능을 하는 비트논리연산자와 비트를 이동하는 시프트 연산자가 있음.
화면 캡처: 2010-05-22, 오후 8:51
화면 캡처: 2010-05-22, 오후 8:51
화면 캡처: 2010-05-22, 오후 8:52
a(16) >>> 11110000(2)
b(16) >>> 00001111(2)
c(16) >>> 00001010(2)
d(16) >>> 00001011(2)
e(16) >>> 00000010(2)
f(16) >>> 00001000(2)
a&b 에서 두 수 중 같은 부분이 하나라도 있어야 함. 그러나 하나라도 같은 수가 없으므로 그냥 답은 0.
a|b에서 둘 중 하나라도 1이 있으면 1을 출력함. 두 수 다 있으므로 11111111 이 된다. 16진수로 표현하면 ff
c^d는 값이 다르면 1이고 값이 같으면 0이 된다. 마지막 자리 숫자만 다르므로 00000001 이 된다. 그래서 앞에
숫자를 빼고 1이 출력!!
~a는 1이면 0으로 출력하고 0이면 1로 출력하라는 말. 00001111 >>>> ffffffof( 처음 변수 초기화 할 때 000000f0(4바이트)
다음 2개는 자리를 두 자리 좌로 우로 이동하라는 명령임.
- 시프트연산자의 활용
왼쪽으로 시프트하는 것은 2를 곱셈한 결과와 동일오른쪽으로 시프트 하는 것은 2를 나누는 것과 결과가 동일.
곱셉 , 나눗셈 연산자를 사용하는 것 보다는 시프트 연산자를 사용하는 것이 처리 속도면에서 훨씬 빠르다.
- 대입연산자
화면 캡처: 2010-05-22, 오후 9:28
화면 캡처: 2010-05-22, 오후 9:28
여려개의 대입 연산자를 사용할 경우 괄호를 사용하지 않는 이상 오른쪽에서 부터 계산한다.
- 삼항연산자
변수 = (조건) ? 데이터1 : 데이터2;
Max = (a > b) ? a: b;
a와 b중 a가 b보다 크면 a를 max에 대입하고 b가 크면 b를 max에 대입하라면 명령.
if else 문을 간략하게 표현할 수 있는 장점.
fflush(stdin) 함수 - 키보드 버퍼를 초기화. / 문자형 데이터를 입력 받을 경우에는 반드시 키보드버퍼를 초기화 해줘야 함.
버퍼는 임시 공간이라는 뜻.
공장과 시장 사이에 두는 창고와 같은 역할. CPU가 키보드 데이터 값이 버퍼에 저장될 동안 다른 일을 핟가
버퍼에 데이터가 저장되면 그 때 데이터를 처리.
- 콤마 연산자.
여러 문장을 하나의 행에서 실행할 때 사용하는 연산자.
- 형변환 연산자.
변수선언 될 때 설정한 자료형과 다른 자료형을 사용할 때 주로 사용하는 연산자.
(자료형) 변수_이름;
int num;
float data;
data = 3.141592;
num = (int)data; <<< 정수형 변수 num에 부동소수점 데이터를 형변환으로 대입.
- 1부터 주어진 수까지 합 계산 하기 .
- 피보나치 수열
Fn=Fn-1 + Fn-2
이해가 잘 안가네~어떻게 이렇게 출력하게 했을까???
'About 프로그래밍!!! > C언어 무따기 정리' 카테고리의 다른 글
[무따기C언어] 9과(포인터의 이해) (0) | 2010.05.26 |
---|---|
[무따기C언어] 4과 변수와 자료형. (0) | 2010.05.25 |
[무따기C언어] 3과(프로그램의 구성요소와 프로그래밍 규칙 (0) | 2010.05.12 |
[무따기C언어] 2과(하나의 프로그램이 실행되기까지) (0) | 2010.05.12 |
[무따기C언어] 1과(프로그램과 프로그래밍 언어) (0) | 2010.05.12 |