항
C언어 : 함수(덩어리)들의 연결 <- 구문(statement)들의 나열 <- 항들의 모임
항 항 항 항; -> 구문들의 흐름 => context (문맥) => 흐름을 바꾸는 것 : context switching
연산의 임시결과
3 + 4 + 5 => 12
연산자 우선순위에 의해 3 + 4 가 실행되어 7이라는 결과값이 나오고 그 값과 5가 더해져서 12가 나오는데, 이 때 7이 임시결과이다.
임시결과는 연산 후 자동으로 삭제되기 때문에 필요하다면 변수에 저장을 해두어야한다.
'=' (단순대입) : Copy & Overwrite
ex) int a, b = 3;
a = b; a : l-value (이때 l은 left도 되지만 location -위치지정자-라는 의미도 있음), b : r-value
이형 자료간의 연산 및 형 승격
'A' (char) + 1 (int) -> ?
표현 범위가 큰 형식을 따른다. ✳︎ int가 된다.
이는 putchar() 함수의 매개변수의 자료형이 int인 이유이다.
123.45 (double) + 1 (int) -> 124.45 (double)
나눗셈
5 / 2 = 2.5 이다.
but) 5 / 2 의 결과를 프로그래밍 해보면 2가 나온다.
5 (int) / 2 (int) -> 2 (int) -소수점 이하는 버려짐-
=> 5 / 2.0 으로 변경하면 정상적으로 2.5가 출력된다. (int) / (double) => (double)
Computer는 어떻게 나눗셈을 하는가
7 / 2 => 5 - 2 => 3 - 2 => 1 (나머지)
(1) (2) (3) <- 몫
✳︎ 7 / 0 => 무한루프 (인터럽트로 강제 종료)
입력 받은 수로 나눌 때 0에 대해 예외처리를 해주어야한다.
프로그래밍 기본 요소
교환 - 임시 변수를 하나 추가해서 교환해야한다.
누적 - 반드시 누산을 위한 변수를 0으로 초기화 해야한다.
계수 - 1씩 증가시킴, (수를 세는 경우에 많이 사용 ++x) x++ 과 혼동하지 말것
형 변환 (type cast)
자료의 해석 방식을 강제로 변경하기 때문에 data의 왜곡이 발생할 수 있으므로 사용할 때에는 항상 주의해야한다.
비트 연산자
Shift right 연산을 할 때, 왼쪽에 bit가 추가되고, 오른쪽엔 bit가 삭제되는데,
왼쪽에 추가되는 bit는 부호비트와 같다.
ex) 0x83 >> 2
10000011(2) >> 2 => 11100000(2) 이 된다.
왜 비트 연산자를 사용하는가
mask 연산을 위해서 사용한다.
ex) Network 서브넷 마스크, embedded system에서 switch 제어
2의 보수 취하기
2의 보수 = 1의 보수 + 1
: ~x + 1
- 출처 : 독하게 시작하는 C 프로그래밍 (최호성, 루비 페이퍼)
'Programming > C language' 카테고리의 다른 글
Chapter 05. 연산자 응용 (내용 정리) (0) | 2017.03.08 |
---|---|
Chpater 04. 연산자 기본 (문제 풀이) (0) | 2017.03.07 |
chapter 03. 표준 입/출력 도구 (문제풀이) (0) | 2017.03.06 |
Chapter 03. 표준 입출력 도구 (내용 요약) (0) | 2017.03.06 |
Chapter 02. 자료형 (내용 요약) (0) | 2017.03.05 |