#따배씨 2.1 기본 자료형 소개
by #독개#
기본 자료형 소개
Fundamental Data Types (Built in Data Types 등 여러가지 방법으로 부른다)
1byte == 8bit
char == 1byte (문자하나)
int == 4byte == float
모든 데이터형은 내부적으로 숫자로 변경해서 저장한다
char a = 'A';
bool bValue = True;
bValue를 출력해보면 1 (Flase == 0)
(int)char 출력해보면 65
char a = 65
이렇게 해도 a를 출력하면 A가 나온다
문자열은 ASCII 에서 숫자로 바꾼다
float fValue = 3.141592f; // float는 초기화시 f를 붙여줘야한다
double dValue = 3.131592;
요즘 파이썬에서는 기본적으로 아무것도 안쓰면 double로 인식한다.
하지만 딥러닝 할때 float가 필요하다 미리 개념을 알고 있는게 좋다
요즘엔 모던c++에선 auto 가 나와서 알아서 잡아주기도 한다
auto deduction (자동 자료형 추론)
#include <iostream>
using namespace std;
int main()
{
auto a = 'H';
auto b = 123;
auto c = 3.141592f;
auto d = 3.141592;
cout << a << endl;
cout << b << endl;
cout << c << endl;
cout << d << endl;
cout << sizeof(a) << endl;
cout << sizeof(b) << endl;
cout << sizeof(c) << endl;
cout << sizeof(d) << endl;
return 0;
}
위에서 기울어진 글씨는 생략이 가능하다는 것이다
ex) short num; 이렇게 선언하면
signed short int num ; 이렇게 선언한것과 같다
(signed) int는 음의정수,0,양의정수(자연수)를 포함
unsigned int는 양의정수,0을 포함
우리가 보통 쓰는 int는 (signed) int 이다
수학 용여에서의 '양의정수(positive integer)나 음의정수 (negative integer)는 0을 포함하지 않는다
수학과 다르다
온라인게임을 만든다고 쳤을때 서버에 동접자가 2만명 막이렇겟지 그러면 이 자료형으로 딱맞는 메모리공간을
사용해서 프로그램을 최대한 가볍게 하는것이 엄청큰 차이를 불러온다
int a = 3.14; //에러남
int a(3.14); //에러남
int a{3.14}; //에러남
int a = (int)3.14; // 출력 3
int a((int)3.14); //출력 3
int a{(int)3.14}; //출력3
이렇게 강제로 자료형에 맞게 바꿔줘야한다.
그런데!!
2022컴파일러가 얼마나 좋은지 이것도 자동으로 해준다 암시적형변환 (coersion)
int a = 3.14; //출력3
int a(3.14); //출력3
int a{3.14}; //에러 uniform initialization이 유일하게 더 엄격하다!
https://nanagame2.tistory.com/218
#따배씨 4.5 Type Conversion 형변환
암시적형변환 (coersion) 사용자가 이데이터 형을 이데이터 형으로 바꿔주세요 라고 명확하게 이야기 하지 않는 경우 컴파일에는 문제없으나 상황에따라 다른결과가 나올수있다. int a = 123.0; 이경
nanagame2.tistory.com
구분자료형크기범위
기본형 | void | – | – |
문자형 | (signed) char | 1 byte | -128 ~ 127 |
unsigned char | 1 byte | 0 ~ 255 | |
wchar_t | 2 byte | 0 ~ 65,535 | |
정수형 | bool | 1 byte | 0 ~ 1 |
(signed) short (int) | 2 byte | -32,768 ~ 32,767 | |
unsigned short (int) | 4 byte | 0 ~ 65,535 | |
(signed) int | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned int | 4 byte | 0 ~ 4,294,967,295 | |
(signed) long (int) | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned long (int) | 4 byte | 0 ~ 4,294,967,295 | |
__int8 | 1 byte | -128 ~ 127 | |
__int16 | 2 byte | -32,768 ~ 32,767 | |
__int32 | 4 byte | -2,147,483,648 ~ 2,147,483,647 | |
__int64 | 8 byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수형 | float | 4 byte | 3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits) |
(long) double | 8 byte | 1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79*10^308) (15digits) |
OS별(16bit/32bit/64bit) 크기 사용의 요점은 다음과 같다.
* int는 시스템의 기본연산 단위를 사용한다. (16bit=>2byte, 32=>4byte, 64=>4byte)
* 64bit에서 long형을 8byte로 확장하였다. (16bit=>4byte, 32=>4byte, 64=>8byte)
🐱👓독하게 개발
'🔥 프로그래밍 학습 > C++' 카테고리의 다른 글
#따배씨 2.3 C++ 11 고정 너비 정수 (Fixed-width Integers) (0) | 2022.11.03 |
---|---|
#따배씨 2.2 정수형(Integers) (0) | 2022.11.03 |
#따배씨 1.14 전처리기# 와의 첫만남 (0) | 2022.11.03 |
#따배씨 1.13 네임스페이스 (명칭 공간) (0) | 2022.11.03 |
#따배씨 1.12 헤더가드가 필요한이유 #pragma once (0) | 2022.11.03 |
블로그의 정보
독한 개발자
#독개#