-
_TypeProgramming/_Common 2023. 7. 19. 20:55
우리가 변수를 사용한다면, 어떠한 형을 사용해서 변수를 사용해야할지 결정해야한다.
C++의 경우 정적타이핑(Static typing) 언어이기 때문에 변수의 데이터 타입을 지정해줘야 변수를 사용할 수 있지만, Python과 같이 동적 타이핑(Dynamic typing) 언어는 컴퓨터가 변수에 대한 형을 알아서 해석해주기 때문에 데이터 타입을 지정하지 않아도 사용할 수 있다.
2. 정적 타이핑(Static typing)
정적 타이핑의 대표적인 언어는 C, C++이 있으며 변수의 데이터 타입을 직접 명시하여 컴퓨터가 해야할 일을 덜어준다.
정적 타이핑을 사용함으로써 코드의 안정성이 커지고 코드의 구조를 쉽게 파악할 수 있다는 장점이 있지만, 코드가 길어질 수 있다는 단점이 있다.
C++의 기본형은 다음과 같다.
종류 이름 사이즈 값의 범위 기본형 void - - 논리형 bool 1 Byte True or False 문자형 char 1 Byte -128 ~ 127 unsigned char 1 Byte 0 ~ 255 wchar_t (wide character) 2 Byte 0 ~ 65,535 정수형 short int 2 Byte -32,768 ~ 32,767 unsigned short int 4 Byte 0 ~ 65,535 int 4 Byte -2,147,483,648 ~ 2,147,483,647 unsigned int 4 Byte 0 ~ 4,294,967,295 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.4E+38double 8 Byte 배정도 부동소수
1.7E-308 ~ 1.7E+308long double 8 Byte 확장 배정도 부동소수
1.7E-308 ~ 1.7E+308조금 더 다양한 type을 보고싶다면 아래의 링크를 참고하면 좋다.
https://cplusplus.com/doc/tutorial/variables/
C++ 에서 사용법은 다음과 같다.
#include <iostream> using namespace std; int main() { int num = 10; char ch = 'a'; cout << num << " " << ch << endl; // 사이즈를 알고 싶다면 sizeof()를 사용 cout << sizeof(int) << "Byte " << sizeof(char) << "Byte" << "\n"; cout << sizeof(num) << "Byte " << sizeof(ch) << "Byte" << "\n"; // type을 알고싶다면 typeid().name()을 사용 cout << typeid(num).name() << " " << typeid(ch).name() << "\n"; return 0; }
결과
3. 동적 타이핑(Dynamic typing)
동적 타이핑의 대표적인 언어는 Python이 있으며 변수를 지정할 때 데이터 타입을 직접 명시하지 않아도 컴퓨터가 해석을 해준다.
동적 타이핑을 사용함으로써 코드를 보다 간결하게 보여줄 수 있는 장점이 있지만, 데이터 타입을 컴퓨터가 파악하기 때문에 실행속도가 느려진다는 단점이 있다.
하지만 명시하는 방법도 존재한다.
import sys def main(): # 일반적인 방법 num1 = 1 ch1 = 'a' print(num1, ch1) ## 명시하는 방법 num2: int = 2 ch2: str = 'b' print(num2, ch2) # 타입을 알고싶다면 type()을 사용 print(type(num2), type(ch2)) # 사용되는 bytes를 알고싶으면 sys.getsizeof()를 사용 print(sys.getsizeof(num2), sys.getsizeof(ch2)) if __name__ == "__main__": main()
결과
함께 보면 좋은 링크
https://ko.wikipedia.org/wiki/IEEE_754
'Programming > _Common' 카테고리의 다른 글
_Process_memory_structure (0) 2023.09.19 _Bit & Byte (0) 2023.07.19 _literal_constant (0) 2023.07.15