부동 소수점은 항상 근사값이다.
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 |