독개

#따배씨 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;
}

출력값

 

 

 

 

 

c++에 있는 전체 자료형

위에서 기울어진 글씨는 생략이 가능하다는 것이다

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)

🐱‍👓독하게 개발

 

블로그의 정보

독한 개발자

#독개#

활동하기