[어소트락] c++ 자료형
📚 자료형
- 자료형(Data Type) 역할
- Byte의 크기 결정
- 정수, 실수 결정
- 선언할 메모리 공간에 이름 부여(변수 이름)
- 공간의 크기와 표현할 데이터에 대해 설명
int i = 0; // i는 4byte 크기의 정수 표현
- 자료형 종류
- 정수형 : char(1), short(2), int(4), long(4), longlong(8)
- 실수형 : float(4), double(8)
- 1Byte = 8bit
- bit(비트): 0 or 1, Yes or No
- Byte(바이트): 8bit, 알파벳과 숫자 한 개
- KB(킬로바이트): 1024Byte, 몇개의 문단
- MB(메가바이트): 1024KB, 1분 길이의 MP3노래
- GB(기가바이트): 1024MB, 30분 길이의 HD영화
- TB(테라바이트): 1024GB, 약 200편의 FHD영화
- 컴퓨터는 1Byte로 256가지의 정수 상태 표현 가능
- 숫자로는 0~255까지 표현 가능
- unsigned
- 양의 정수만 표현하고 싶을 때 정수형 앞에 붙인다
- 예)
unsigned char c = 0;
📚 정수형 자료형
- 컴퓨터는 사용자가 입력한 값에 대해 컴퓨터가 읽을 수 있는 수로 변환하여 해석
- 특정 값을 입력해도 컴퓨터는 다른 값으로 해석한다
- 컴퓨터에서 1Byte는 256개의 표현 가능
- 양수만 표현:
unsigned char c = 0;
- c는 255까지 입력이 가능
- 양수, 음수 둘 다 표현하면
-128 ~ 0 ~ 127
로 표현 가능
- 양수만 표현:
- 표현할 수 있는 수의 크기는 자료형의 Byte 크기 값에 따라 달라진다
- 최상위비트(MSB, Most Significant Bit)
- Bit 가장 앞에 있는 숫자
- 가장 앞에 있는 비트값에 따라 양수와 음수가 정해진다
- 컴퓨터는 입력된 1이라는 숫자를 1의 Bit값으로 해석
- 예) 1을 Bit 값으로 표현:
'0','0','0','0','0','0','0','1'
- 예) 1을 Bit 값으로 표현:
- 양수는 비트값 앞에 자리가 0
- 숫자 0의 비트:
'0','0','0','0','0','0','0','0'
- 음수를 표현하는 비트값은 앞에 자리가 1
- 숫자 -1의 비트:
'1','1','1','1','1','1','1','1'
- 숫자 -1의 비트:
- 1이라는 숫자를 입력하면 그 수가 Bit로 변환되어 컴퓨터에 입력
- 컴퓨터는 그 Bit를 해석
- 예)
char c1 = 0;
c1 = 1;
- 1이 입력되지 않고 비트
'0','0','0','0','0','0','0','1'
를 입력 - 컴퓨터는 Bit를 해석한 뒤 1이라는 숫자를 출력
- 예)
char c1 = 0;
c1 = 255;
- 255라는 숫자가 아닌 비트
'1','1','1','1','1','1','1','1'
를 입력받은 것 - 컴퓨터는 이 숫자를 -1로 해석
- 음수 비트 구하는 방법
- 양수 비트 +
음수 비트
= 0
- 양수 비트 +
- 보수법
- 대응되는 양수의 비트들을 반전시킨 후, 1을 더한다
- 2의 비트:
('0','0','0','0','0','0','1','0')
- -2의 비트:
('1','1','1','1','1','1','1','0')
- 2의 비트
+
-2의 비트 =('0','0','0','0','0','0','0','0')
signed char c1 = 0;
- 음수와 양수를 동시에 표현 할 때 사용하나 기본적으로 표현 생략
📚 실수형 자료형
- 실수(소수)
- 정수 데이터와 실수 데이터를 처리하는 방식이 다르다
- Byte 크기에 따라 표현할 수 있는 수의 한계가 있다
- 무한대로 수를 늘릴 수 있는 실수에 비해 컴퓨터는 그에 대응하여 설정할 수 있는 비트가 다 정해져 있지 않다
- 부동소수점
- 컴퓨터에서 실수를 표현하는 방식
- 정수 데이터와 실수 데이터가 혼합된 경우, 둘 중 한쪽 방식을 선택해서 연산한다
- 똑같은 값이라 하더라도 정수와 실수에 따라 표현되는 비트가 완전히 다르다
- 예:)
int a = 4 + 4.0;
- 4와 4.0을 연산할 때, 결과값을 정수로 할지, 실수로 할지 결정해야 한다
- int형을 사용했기 때문에 결괏값이 정수로 저장된다
- 계산 과정 중, 실수 체계 표현에서 정수 체계 표현으로 형 변환을 한 뒤에 계산한다
- 컴퓨터는 실수에서의 계산을 근삿값으로 표현한다
- 올바른 계산식을 써도 소수를 정확하게 계산하지 못해 버그가 생길 수 있다
- 실수 표현 방식은 정밀도에 의존
- double(8Byte) 자료형이 float(4Byte)보다 더 아래의 소수점까지 정확하게 표현 가능
- 정수는 정수끼리, 실수는 실수끼리 연산하되, 두 표현 방식의 피연산자가 연산될 경우 명시적으로 변환할 것
- 예:)
float f = 10.245f + (float)20;
- 예:)
- float
- 수 뒤에 f를 붙인다
- 4byte 실수형
- 안 붙일 경우, double로 인식
- 8byte 실수형
Author And Source
이 문제에 관하여([어소트락] c++ 자료형), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tataki26/어소트락-c-자료형저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)