경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 2022/04/04~2022/12/13 1. 변수의 자료형(데이터 타입)
1. 변수의 자료형(데이터 타입)
변수의 자료형이란 변수를 선언할 때, 이 변수가 어떤 자료의 형태를 나타내는지 설명해주는 것을 의미한다. C++은 엄격한(strict) 언어라서, 변수를 하나 선언할 때도 자료형을 명확히 밝히고 사용해야 한다. 그러기 위해서는 변수의 특성부터 잘 파악하는 것이 우선이라고 생각한다.
변수의 특성
변수의 특성은 다음의 4가지 이다.
1) 이름
2) 값
3) 크기
4) 메모리 주소
이와 같은 특성을, 특히 값의 종류와 그 크기를 고려하여 변수의 자료형을 고르게 된다.
자료형의 종류
자료형은 그 값의 종류에 따라 다음과 같이 종류가 나누어진다.
1) 불형 (bool 등)
2) 정수형 (int 등)
3) 실수형 (float, double 등)
4) 문자형 (char 등)
5) 문자열 (string 등)
이처럼 나뉘는 이유는, 그 자료의 형태에 따라 데이터 처리 방식이 달라지기 때문이다. 또한, 같은 형태임에도 또다른 자료형이 있는 것은 한정된 용량을 유효 활용하기 위함이라 할 수 있다.
불형
불형은 참, 거짓만을 값으로 받는 자료형이며, 그렇기에 그 크기도 1Byte로 매우 작다. 0과 1로 이루어진, 논리 판단을 위한 변수에 사용하기 좋다. 대표적으로 bool 등이 있다.
정수형
정수형은 정수(-1, 0, 1 등)를 양과 음을 가리지 않고 값으로 받는 자료형이다. 그 부호는 맨 앞 bit(MSB: most significant bit, 최상위 부호 비트)가 0인가 1인가에 따라서, 0이면 양수, 1이면 음수로 분간한다. unsigned로 양의 정수만을 받도록 한정할 수 있으며, 그 경우 값의 범위는 2배 가까이 변한다. 예를 들어, 정수형 char의 크기는 1Byte이고, 이는 -128 ~ 127의 범위의 정수이다. 이는 bit로 표현하면 다음과 같다.
1 = 0000 0001 127 = 0111 1111 0 = 0000 0000
-1 = 1111 1111 -127 = 1000 0001 -128 = 1000 0000
컴퓨터에서의 빼기는 기본적으로 음수의 덧셈이기에, 어떤 것을 더했을 때 0 (0000 0000 OR 1 0000 0000)이 되는가에 따라 음수를 정한다.
그리고 unsigned char의 범위는 0 ~ 255로 변한다. (2^8 = 256)
정수형에는 대표적으로 int, bool, short, long, __int8 등이 있다.
실수형
실수형은 말 그대로 실수를 값으로 받는 자료형으로, 다만 정수형처럼 데이터를 처리한다면 0과 1 사이에도 수없이 많은 값이 있는 실수를 모두 담기에는 컴퓨터의 용량이 턱없이 부족하다. 그렇기에, 컴퓨터에서는 부동소수점 방식으로 실수를 표현한다.
- 부동소수점
부동소수점 방식이란 실수를 컴퓨터에서 근사하여 표현할 때, 소수점의 위치를 정하지 않고 그 위치를 정밀도에 따라 별개로 기록하는 것이다. 32비트 컴퓨터를 기준으로, 실수형은 1비트의 부호부, 8비트의 지수부, 23비트의 가수부로 나누어 나타낸다.
-부호부 (1비트) : 양수일 때는 0, 음수일 때는 1
-지수부 (부호가 없는 정수, 8비트) : 8비트로 표시
-정규화된 가수부 (부호가 없는 정수, 23비트) : 제일 앞의 비트는 정규화되었으므로 1이다.
출처: 부동소수점 위키백과
예를 들어, 십진수 21.8125를 정규화된 이진수로 나타낸다고 해보자. 21.8125 = 10101.1101이며, 이를 정규화하면
0.101011101×2^5
이다. 지수의 5를 이진법으로 바꾸면 101이다. 따라서 32비트 정규화된 부동소수점수로 나타낸다면 맨 앞 비트의 부호는 0(양)이고, 지수부 부호는 0(양)이며, 지수부 나머지 6개 비트는 000101, 가수부는 101011101000…이 된다. 이것을 결합하면
0000001011010111010000000000000000
가 된다. 이런 부동소수점 방식을 쓰는 실수형은 대표적으로 float, double 등이 있으며, C++에서는 실수의 디폴트 자료형은 double이므로 float으로 선언할 때는 아래와 같이
float f = 21.8125f
float f = (float) 21.8125;
로, f를 수의 뒤에 붙이는 등의 방법으로 float으로 선언함을 명시해야 한다.
참고로, float은 소수점 아래 7자리, double은 소수점 아래 15자리까지 사용할 수 있다.
문자형
문자형은 정수형으로 주어진 수를 다음과 같은 ASCII 코드표에 대입하여, 정해진 글자를 불러내는 자료형이다.
출처: https://shaeod.tistory.com/228
대표적으로 char 등이 있다.
문자열
문자열은 보통 문자형의 배열로써 값을 저장하지만, <string>의 헤더 파일을 사용하는 것으로 string이라는 문자열의 자료형을 사용하는 것이 가능하다. 그 크기는 고정되지 않고, "문장"을 큰따옴표 안을 읽어내는 것으로 저장한다. 그 대표 예는 앞써 말했듯이 string이 있다.
#include <string>
string str = "문장"
전체
다음은 32비트를 기준으로 한 자료형의 크기 및 범위이다. 다른 OS(16비트, 64비트)나 컴파일러에서는 자료형의 크기가 조금씩 달라질 수 있다.
출처: https://myblog.opendocs.co.kr/archives/1230
Author And Source
이 문제에 관하여(경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 2022/04/04~2022/12/13 1. 변수의 자료형(데이터 타입)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@strange_tiger/경일게임아카데미-멀티-디바이스-메타버스-플랫폼-개발자-양성과정-20220404202212131.-변수의-자료형데이터-타입저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)