본문 바로가기

assortrock

c++ 1일차

자료형(변수의 종류)

 

정수형 : int(4byte), char(1byte), short(2byte), long(4byte), long long(8byte), bool(1byte) 등

실수형 : float(4byte), double(8byte) 등

 

1byte = 8 bit

1 byte 내의 최 좌측 bit : MSB( most significant bit)

1 byte 내의 최 우측 bit : LSB( least significant bit)

 

자료형 앞에 unsigned 가 붙으면 오직 양수만 취급한다.

자료형 앞에 signed 붙으면 음수까지 취급하며 기본값으로 생략한다.

 

cpu 는 오직 덧셈만을 연산하기에 더했을 때 0이 되는 수를 구하는 방식으로 뺄셈을 계산한다.

 

실수 자료형을 저장하는 방식

1.  부동 소수점 방식

float의 경우

좌측 첫번째 1 bit 에 부호를(부호 비트 방식), 그 다음 8bit 는 지수를, 나머지 23bit 는 가수를 저장한다.

*ex) 120.224 이라는 실수를 1.20224 x 10^2의 형태로 표현. 이때 1.20224를 가수부분, 10^2를 지수부분으로 나눌 수 있다.

순서

1. 주어진 십진법 형태의 실수를 절대값만 이진법으로 나타낸다.

2. 소수점을 정수 부분 한자리만 남기도록 왼쪽으로 옮긴다.

3. 가수에 소수점을 옮긴만큼 10의 거듭제곱 하여 곱한다. (형태 : (가수)x(지수)^(소수점을 옮긴 횟수))

4. 좌측 첫 번째 1bit(부호부)에 음수일 경우 1을 양수일 경우 0을 저장, 그 다음 8bit(지수부)에 ((소수점 옮긴 횟수)+127)을 이진법으로 변환하여 저장, 나머지 23bit 에는 소수점 오른쪽 부분으로, 부족한 비트는 (우측으로)0으로 채워 저장

 

double 의 경우

좌측 첫번째 1 bit 에 부호를(부호 비트 방식), 그 다음 11bit 는 지수를, 나머지 52bit 는 가수를 저장한다.

 

실수 자료형은 입력에 가장 가까운 수를컴퓨터가 알아서 저장한다 = 입력한 수와 저장된 수가 정확하게 일치하지 않는다 ==> 실수형을 비교의 대상으로 사용할 때 주의할 것

 

정수형과 실수형을 연산할 때

연산은 정수형 끼리 혹은 실수형끼리 가능하므로 연산의 대상이 되는 자료형을 모두 정수형으로 바꾼 다음 연산을 진행하거나 모두 실수형으로 바꾼 다음 진행해야 한다.

특정한 조치가 없이 정수와 실수를 더하는 경우 (컴파일러가)자동으로 실수화 우선으로 연산한다.

 

정수형 4와 실수형 4.f 는 비트 표기에 있어서 완전히 다르다.

 

실수 자료형에서 대입하는 값의 뒤에 f 를 붙이는 것은 float 붙이지 않으면 double 이다.

'assortrock' 카테고리의 다른 글

c++ 6일차  (0) 2022.05.18
c++ 5일차  (1) 2022.05.15
c++ 4일차  (0) 2022.05.15
c++ 3일차  (0) 2022.05.12
c++ 2일차  (0) 2022.05.11