본문 바로가기

Program Languege/C/C++

데이터, 기본 자료형

- 데이터

 

 프로그램을 작성한다는 것은 일련의 데이터를 처리하는 것. 즉, 복잡한 계산을 하거나 많은 양의 데이터를 처리하는 등의 일을 수행하는 프로그램을 만드는 것이다. 이때 프로그램의 작업 대상은 데이터이다. 따라서 프로그램을 작성할 때 가장 먼저 해야 할 일은 대상 데이터를 저장할 변수와 변수에 저장되는 데이터 성격을 결정하는 것이다. '성격'이란 데이터 특성에 따른 컴퓨터의표현이나 저장 방식으로, 숫자인가 문자인가 또는 숫자라면 정수인가 소수점이 있는 실수인가 등을 구분하는 것이다.

 

 앞서 변수 설명에서 변수명 앞에 붙어있던 것을 데이터타입, 자료형이라고 하는데 이 자료형이라고 하는 것이 이 변수가 어떤 값을 저장하는 변수인지를 지정하는 것이다. 자료형마다 컴퓨터에서 데이터를 표현하는 방법과 할당된 메모리의 크기가 다르다. 그렇기 때문에 변수를 선언할 때 어떤 값을 저장할 변수인지 미리 생각해서 정해야한다.

 

 같은 자료형의 연산 -> 같은 자료형의 결과를 얻는다.

 

 다른 자료형의 연산 -> 자료형에 할당된 기억 장소 크기가 큰 자료형의 결과를 얻는다.

 

 단! 기억 장소가 크기가 작은 자료형에 기억 장소 크기가 큰 자료형을 넣으면 정보가 일부 손실 될 수 있다.

 ex> 정수형 변수에 실수 값을 넣으면 소수점 아래 값이 손실.

 

- 기본 자료형

 

C++에서 제공하는 기본 자료형.

 

C++은 정수형에서는 int를 기본 자료형, 실수에서는 double을 기본 자료형으로 한다.

 

크기를 넘어가는 경우에는 어떻게 될까?

 

-소스 코드 예시

 

 int a = 2147483647; // int형의 최대 값.

 

std::cout << "값 증가 전 a = " << a << std::endl;

 

a = a + 1;

 

std::cout << "값 증가 후 a = " << std::endl;

 

 

일단 컴파일은 문제가 없다.

 

최대 값에서 1이 증가했는데 정반대인 최소 값으로 변했다. 이것은 부호비트(MSB)와 보수 관계 때문에 일어난 일인데 오버플로우(Overflow)라고 한다. 다음에 공부하도록 하고 값의 범위의 중요성을 알 수 있는 실험? 이었다. 이런 경우가 흔한지 모르겠지만 변수형을 정할 때 유의하자.

 

 

 

- 출처 : 열혈강의 C++ 언어본색

※ 책을 보고 공부한 내용을 개인의 생각을 담아 정리하였기때문에 내용이 책과 다를 수 있습니다.

'Program Languege > C/C++' 카테고리의 다른 글

조건문 switch  (0) 2013.02.14
조건문 - if  (0) 2013.02.14
연산자  (2) 2013.02.13
형 변환  (0) 2013.02.13
변수와 상수  (0) 2013.02.13