본문 바로가기
Language&Framework&Etc/C

4일차

by 머리올리자 2017. 5. 20.

여러 항(Item)들이 모여 구문(Statement)이 모여 Scope가 모여 Program


연산의 흐름 - Context

Context Switching - 흐름 변경


3+4+5 = 12

  7       - 연산의 임시결과(변수에 저장)

     12


  (3)           (1)   (2)

nResult = 3 + 4 - 5


'='(단순 대입)

    Copy & Overwrite


int a


 a        =      10;

변수           상수

l-value     r-value

Left          Right

Location


const int a = 10; - 상수화

a = 5;



이형자료 간의 연산 : 표현 범위가 큰 형식대로 변한다.  형승격(type promotion)


'A'   +   1

char  +  int = int


123.45   +   1 

double     int = double

(실수)


4.1.3 page 114 꼭 풀어봐라


÷ 2  → 2.5(실수 - double)

5  /  2   → 2(소수점 이하 절사)

int int 


5 / 2.0  → 2.5 %f 출력

int double → double


몫 + 나머지

/         ÷    - 두 번 계산해야 함


Computer 어떻게 나눌까?


7  /  2

7  -  2 = 5

   5  -  2 = 3

     3  -  2  =  1(나머지)


ex) 7  /  0 - Cpu 업 - 전기 업 - 열 업 - 저항 업 - 열 업 - 저항 업

     절대로 0으로 나누면 안됨


page 123 꼭 이해


두수의 교환


int a = 3, b = 4, tmp;

  tmp = a;

   a    = b;

   b    = tmp;

            -----

               a 


복합대입연산자 - 10분


int a;

a = 0;

a = a+1

a+=1;


nTotal += 값

------

누적


int 2.5 ---> int 2 절사 : 정보의 변질


주소 = 극소

ㅁㅁㅁㅁㅁㅁㅁㅁㅁ[ㅁㅁㅁㅁ]ㅁㅁㅁㅁㅁㅁㅁㅁㅁ

↑                         int 결정 - 지정

1byte = 8bit                

                           char로 지정하면 강제형변환



int a = 0;

a = a+1;

a+=1;

++a; ---> a++;

전위식      후위식


A   B  | AND   OR   XOR   NOT

0   0  |   0       0      0      0 → 1

1    0  |   0       1       1        1 → 0

0   1   |   0       1       1  

1    1   |   1        1       0



Shift 연산자

0 x 83

[ㅁㅁ]1000 0011


마스크 연산에 비트연산자 사용


IP주소

192.168.0 |.10

--------- | ----

NET ID     | Host


printf("%d\n", 3);

printf("%d\n", ~3(1의보수)+1 - 2의 보수);

'Language&Framework&Etc > C' 카테고리의 다른 글

6일차 - 기본제어문  (0) 2017.05.29
5일차  (0) 2017.05.20
3일차  (0) 2017.05.18
2일차  (0) 2017.05.14
1일차  (0) 2017.05.09