SlideShare a Scribd company logo
1 of 29
최원빈 (bindon@korea.ac.kr)
고려대학교
2017. 04. 10.
C 프로그래밍 이론 및 실습
2
 반지름이 3인 원의 넓이, 둘레와 높이가 5인 부피
구하기
 모듈화(함수 사용)
 알맞은 define 또는
const 사용
 알맞은 자료형 사용
지난 과제 풀이
3
 일반적인 자료형 범위
기본 자료형의 종류
4
 워룸 기준으로의 길이 확인
기본 자료형의 종류
64비트(x64)32비트(x86)
5
 실수형 변수의 처리 방법
 float
 부호(1비트), 지수(8비트), 가수(23비트)
 double
 부호(1비트), 지수(11비트), 가수(52비트)
기본 자료형의 종류
1 8 23
1 11 52
6
 실수형 변수의 값 확인
기본 자료형의 종류
7
 실수형 변수의 값 확인
기본 자료형의 종류
8
 실수형 변수의 값 확인(IEEE 754)
 float : 000046c1 (little endian)
c1460000 (big endian)
 부호(1비트), 지수(8비트), 가수(23비트)
 -12.375 = -1100.011(2)
= -1.100011 × 23
(2)
 부호 : 0(양수), 1(음수)
 지수 : 10000010
 가수 : 10001100000...
기본 자료형의 종류
9
 정수형 부호 표현
기본 자료형의 종류
10
 정수형 부호 표현
 plus
 12345(10)
 39300000(2-little endian)
 00003039(2-big endian)
기본 자료형의 종류
11
 정수형 부호 표현
 minus
 -12345(10)
 c7cfffff(2-little endian)
 ffffcfc7(2-big endian)
기본 자료형의 종류
12
 연산자 사용 방법
축약 연산자
13
 연산자 사용 방법과 결과
1. number == 10
2. number = number + (1 * 2) == 12
3. number = number * (9 + 1) == 120
축약 연산자
14
 연산자 사용 방법
비트 연산자
15
 연산자 사용 방법과 결과
비트 연산자
16
 연산자 사용 방법과 결과
 left & right
& 0011 0000 0011 1001 // left
& 1101 0100 0011 0001 // right
-----------------------------------------------
& 0001 0000 0011 0001 // result(4145)
비트 연산자
17
 연산자 사용 방법과 결과
 left | right
| 0011 0000 0011 1001 // left
| 1101 0100 0011 0001 // right
-----------------------------------------------
| 1111 0100 0011 1001 // result(62521)
비트 연산자
18
 연산자 사용 방법과 결과
 ~left
~ 0011 0000 0011 1001 // left
-----------------------------------------------
~ 1100 1111 1100 0110 // result(-12346)
비트 연산자
19
 연산자 사용 방법과 결과
 left << 2 (* 2n의 효과)
0011 0000 0011 1001 // left
0110 0000 0111 0010 // left << 1
1100 0000 1110 0100 // left << 2 (49380)
비트 연산자
20
 연산자 사용 방법과 결과
 left >> 2 (* 2-n의 효과)
0011 0000 0011 1001 // left
0001 1000 0001 1100 // left >> 1
0000 1100 0000 1110 // left >> 2 (3086)
비트 연산자
21
 연산자 사용 방법과 결과
 result = (condition) ? (true val) : (false val)
3항 연산자
22
 연산자 사용 방법과 if문과의 비교
3항 연산자
23
 연산자 사용 방법과 if문과의 비교
3항 연산자
24
 연산자 사용 방법과 결과
전ㆍ후위 증감 연산자
25
 연산자 동작 개념
 연산 없이 출력하는 경우
1. number 변수의 값을 EAX에 저장
2. printf에 매개변수를 위해 스택에 저장(param 2)
3. printf에 매개변수를 위해 스택에 저장(param 1)
4. printf() 호출
5. ESP(Extended Stack Pointer) 이동
전ㆍ후위 증감 연산자
26
 연산자 동작 개념
 후위 연산의 경우
1. 현재 number의 값을 [ebp-0D0h]에 저장
2. number의 값을 ecx에 저장하고 1을 더한 후
number에 다시 저장
전ㆍ후위 증감 연산자
27
 연산자 동작 개념
 전위 연산의 경우
1. 현재 number의 값을 [ebp-0D0h]에 저장
1. number의 값을 eax에 저장하고 1을 더한 후
number에 다시 저장
전ㆍ후위 증감 연산자
28
 연산자 동작 개념
 연산자의 차이
전ㆍ후위 증감 연산자
29
Thank you

More Related Content

What's hot

7. variable scope rule,-storage_class
7. variable scope rule,-storage_class7. variable scope rule,-storage_class
7. variable scope rule,-storage_class
웅식 전
 

What's hot (20)

문자함수(2)
문자함수(2)문자함수(2)
문자함수(2)
 
Data Structure - 1st Study
Data Structure - 1st StudyData Structure - 1st Study
Data Structure - 1st Study
 
7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍7가지 동시성 모델 - 3장. 함수형 프로그래밍
7가지 동시성 모델 - 3장. 함수형 프로그래밍
 
Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저
 
7가지 동시성 모델 4장
7가지 동시성 모델 4장7가지 동시성 모델 4장
7가지 동시성 모델 4장
 
7. variable scope rule,-storage_class
7. variable scope rule,-storage_class7. variable scope rule,-storage_class
7. variable scope rule,-storage_class
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체
 
Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface
 
Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04Unity Surface Shader for Artist 04
Unity Surface Shader for Artist 04
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초
 
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
[C++ Korea] Effective Modern C++ MVA item 9 Prefer alias declarations to type...
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
5. queue
5. queue5. queue
5. queue
 
[KOSSA] C++ Programming - 13th Study - exception handling
[KOSSA] C++ Programming - 13th Study - exception handling[KOSSA] C++ Programming - 13th Study - exception handling
[KOSSA] C++ Programming - 13th Study - exception handling
 
2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차
 
Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02Unity Surface Shader for Artist 02
Unity Surface Shader for Artist 02
 
Haskell study 10
Haskell study 10Haskell study 10
Haskell study 10
 

More from arundine (6)

Cryptol 수업자료
Cryptol 수업자료Cryptol 수업자료
Cryptol 수업자료
 
[170605 7주차]C언어 A반
[170605 7주차]C언어 A반[170605 7주차]C언어 A반
[170605 7주차]C언어 A반
 
[170529 6주차]C언어 A반
[170529 6주차]C언어 A반[170529 6주차]C언어 A반
[170529 6주차]C언어 A반
 
[170510 4주차]C언어 A반
[170510 4주차]C언어 A반[170510 4주차]C언어 A반
[170510 4주차]C언어 A반
 
[170403 2주차]C언어 A반
[170403 2주차]C언어 A반[170403 2주차]C언어 A반
[170403 2주차]C언어 A반
 
[170327 1주차]C언어 A반
[170327 1주차]C언어 A반[170327 1주차]C언어 A반
[170327 1주차]C언어 A반
 

[170410 3주차]C언어 A반

  • 1. 최원빈 (bindon@korea.ac.kr) 고려대학교 2017. 04. 10. C 프로그래밍 이론 및 실습
  • 2. 2  반지름이 3인 원의 넓이, 둘레와 높이가 5인 부피 구하기  모듈화(함수 사용)  알맞은 define 또는 const 사용  알맞은 자료형 사용 지난 과제 풀이
  • 3. 3  일반적인 자료형 범위 기본 자료형의 종류
  • 4. 4  워룸 기준으로의 길이 확인 기본 자료형의 종류 64비트(x64)32비트(x86)
  • 5. 5  실수형 변수의 처리 방법  float  부호(1비트), 지수(8비트), 가수(23비트)  double  부호(1비트), 지수(11비트), 가수(52비트) 기본 자료형의 종류 1 8 23 1 11 52
  • 6. 6  실수형 변수의 값 확인 기본 자료형의 종류
  • 7. 7  실수형 변수의 값 확인 기본 자료형의 종류
  • 8. 8  실수형 변수의 값 확인(IEEE 754)  float : 000046c1 (little endian) c1460000 (big endian)  부호(1비트), 지수(8비트), 가수(23비트)  -12.375 = -1100.011(2) = -1.100011 × 23 (2)  부호 : 0(양수), 1(음수)  지수 : 10000010  가수 : 10001100000... 기본 자료형의 종류
  • 9. 9  정수형 부호 표현 기본 자료형의 종류
  • 10. 10  정수형 부호 표현  plus  12345(10)  39300000(2-little endian)  00003039(2-big endian) 기본 자료형의 종류
  • 11. 11  정수형 부호 표현  minus  -12345(10)  c7cfffff(2-little endian)  ffffcfc7(2-big endian) 기본 자료형의 종류
  • 12. 12  연산자 사용 방법 축약 연산자
  • 13. 13  연산자 사용 방법과 결과 1. number == 10 2. number = number + (1 * 2) == 12 3. number = number * (9 + 1) == 120 축약 연산자
  • 14. 14  연산자 사용 방법 비트 연산자
  • 15. 15  연산자 사용 방법과 결과 비트 연산자
  • 16. 16  연산자 사용 방법과 결과  left & right & 0011 0000 0011 1001 // left & 1101 0100 0011 0001 // right ----------------------------------------------- & 0001 0000 0011 0001 // result(4145) 비트 연산자
  • 17. 17  연산자 사용 방법과 결과  left | right | 0011 0000 0011 1001 // left | 1101 0100 0011 0001 // right ----------------------------------------------- | 1111 0100 0011 1001 // result(62521) 비트 연산자
  • 18. 18  연산자 사용 방법과 결과  ~left ~ 0011 0000 0011 1001 // left ----------------------------------------------- ~ 1100 1111 1100 0110 // result(-12346) 비트 연산자
  • 19. 19  연산자 사용 방법과 결과  left << 2 (* 2n의 효과) 0011 0000 0011 1001 // left 0110 0000 0111 0010 // left << 1 1100 0000 1110 0100 // left << 2 (49380) 비트 연산자
  • 20. 20  연산자 사용 방법과 결과  left >> 2 (* 2-n의 효과) 0011 0000 0011 1001 // left 0001 1000 0001 1100 // left >> 1 0000 1100 0000 1110 // left >> 2 (3086) 비트 연산자
  • 21. 21  연산자 사용 방법과 결과  result = (condition) ? (true val) : (false val) 3항 연산자
  • 22. 22  연산자 사용 방법과 if문과의 비교 3항 연산자
  • 23. 23  연산자 사용 방법과 if문과의 비교 3항 연산자
  • 24. 24  연산자 사용 방법과 결과 전ㆍ후위 증감 연산자
  • 25. 25  연산자 동작 개념  연산 없이 출력하는 경우 1. number 변수의 값을 EAX에 저장 2. printf에 매개변수를 위해 스택에 저장(param 2) 3. printf에 매개변수를 위해 스택에 저장(param 1) 4. printf() 호출 5. ESP(Extended Stack Pointer) 이동 전ㆍ후위 증감 연산자
  • 26. 26  연산자 동작 개념  후위 연산의 경우 1. 현재 number의 값을 [ebp-0D0h]에 저장 2. number의 값을 ecx에 저장하고 1을 더한 후 number에 다시 저장 전ㆍ후위 증감 연산자
  • 27. 27  연산자 동작 개념  전위 연산의 경우 1. 현재 number의 값을 [ebp-0D0h]에 저장 1. number의 값을 eax에 저장하고 1을 더한 후 number에 다시 저장 전ㆍ후위 증감 연산자
  • 28. 28  연산자 동작 개념  연산자의 차이 전ㆍ후위 증감 연산자