네트워크 보안 수업 3일차 - 코리아 정보보안 IT학원

2016. 3. 30. 16:42네트워크 보안 수업/C언어

반응형

데이터의 종류


- 상수


- 변수


상수 (Const)


- 변하지 않는 값

ex)

2, 동대문, A, ...

- 숫자 상수, 문자 상수, 문자열 상수


[실습]: constant.c

#include <stdio.h>


int main(int argc, char *argv[])

{

100;

'c';

"abc";

1.4;

-20;

-0.123;


return 0;

}


[실습]: constant02.c

#include <stdio.h>

int main(int argc, char *argv[])

{

'Hello, World!!!';

"Hello,

World!!!";

"Hello, World!!!';

'Hello, World!!!";


return 0;

}


[실습]: constant03.c

#include <stdio.h>


int main(int argc, char *argv[])

{

korea;


return 0;

}


@ 데이터 타입


- 32비트 기준

size unit C Declaration

1 byte char

2 byte short, short int

4 byte long, int, long int, float, *(pointer)

8 byte long long, long long int, double

12 byte long double


- 64비트 기준

size unit C Declaration

1 byte char

2 byte short, short int

4 byte int, float

8 byte long long, long, long int, *(pointer), double

16 byte long double


* C 코드내에서 사용되는 상수들은 기본 데이터 타입의 크기를 

  벗어날 수 없다. 


데이터의 표현


- 코드내에서 사용되는 모든 상수는 기본적으로 (long) int 타입으로 처리

- 문자도 상수이기 때문에 int 타입으로 처리

- 실수는 double 타입으로 처리

- 문자열 상수는 주소를 나타내는 int 타입으로 처리


- 기본적으로 signed 형태를 갖는다.


signed : 부호가 있는 정수


unsigned : 부호가 없는 정수



suffix 

- 상수의 타입을 지정할 수 있다. 


- suffix의 종류

int: 필요 없음(기본 타입)

unsigned int: U

unsigned long int: UL

long long int: LL

unsigned long long int: ULL

float: f


ex). 

- signed에서 표현 가능한 최대 숫자

9223372036854775808

18446744073709551616


@ 데이터의 표현 범위

C Declaration size range

(signed) char 1byte -128 ~ 127

unsigned char 1byte 0 ~ 255


(signed) short 2byte -32768 ~ 32767

(signed) short (int) 2byte -32768 ~ 32767

unsigned short 2byte 0 ~ 65535

unsigned short (int) 2byte 0 ~ 65535


(signed) long 4byte -2,147,483,648 ~ 2,147,483,647

(signed) long (int) 4byte -2,147,483,648 ~ 2,147,483,647

(signed) int 4byte -2,147,483,648 ~ 2,147,483,647

unsigned long 4byte 0 ~ 4,294,967,295

unsigned long (int) 4byte 0 ~ 4,294,967,295

unsigned int 4byte 0 ~ 4,294,967,295


(signed) long long 8byte - 9,223,372,036,854,775,808 ~ 

 9,223,372,036,854,775,807

(signed) long long (int) 8byte - 9,223,372,036,854,775,808 ~ 

 9,223,372,036,854,775,807

unsigned long long 8byte 0 ~ 18,446,744,073,709,551,615

unsigend long long (int) 8byte 0 ~ 18,446,744,073,709,551,615


[실습]: constant04.c

#include <stdio.h>


int main(int argc, char *argv[])

{

60000;

1223372036854775807;

return 0;

}


[실습]: constant05.c

#include <stdio.h>


int main( int argc, char *argv[] )

{

  10;

  010; // 8(10)

  0x10; // 16(10)


  -10;

  0xf6; // -10(10)

  0366; // -10(10)


  255;

  0xFF;


  18446744073709551615U;

  0xFFFFFFFFFFFFFFFF;


  return 0;

}

반응형