부동 소수점은 항상 근사값이다.

1. 불리언(Boolean)

: 참과 거짓을 가짐.

불리언은 0 또는 1의 값을 가지는 1바이트 정수이다.

불리언만 봐도 참 또는 거짓을 알 수 있음(가독성 향상).

 

2. 부동 소수점(Floating Point)

: 정수가 아닌 실수를 표현 함.

소숫점 앞 뒤를 기준으로 16비트 씩 끊어서 표현 => 큰 숫자를 표현하기 힘듬(0~65535) . (0~65535) 

따라서 부동 소수점을 이용함.

-> 소숫점을 유동적으로 움직임.

 

ex) 3.1415926535 를 부동 소수점으로 표현

(1) 0.31415926535 * 10^1

(2) 31415926535(유효숫자), 1(10의 지수)

 

- float

4바이트의 값을 가짐

부호(1) 지수(8) 유효숫자(23) = 32비트, 4바이트

float attackSpeed = 0.6391f; // 4바이트
double attackSpeed2 = 1123.412; // 8바이트

 

- double

8바이트의 값을 가짐

부호(1) 지수(11) 유효숫자(52) = 64비트, 8바이트

 

(실습) -3.375 값을 저장하기

(1) 이진수로 전환

3 + 0.375 = 0b11 + 0b0.011 = 0b11.011

0.375 = 0.5 * 0 + 0.25 * 1 + 0.125 * 1 = 0b0.011

 

(2) 정규화

0b11.011 = 0b1.1011 * 2^1

1(부호) 1(지수) 1011(유효숫자)

단, 지수는 unsigned byte라고 가정함, 숫자+127을 만들어 줌 (1000 0000)

output : 0b 1 10000000 10110000 0000 0000 0000 0000

 

- 주의

실수 2개를 '=='로 비교하는 것은 회피해야 함.

(근사값의 비교이기 때문)

'기초 C++ 스터디' 카테고리의 다른 글

1-6. 비트 연산과 비트 플래그  (0) 2023.05.02
1-5. 비교 연산과 논리 연산  (0) 2023.05.02
1-4. 산술 연산  (0) 2023.05.02
1-3. 문자와 문자열(Character)  (0) 2023.05.02
1-1. 정수(Integer)  (0) 2023.05.02