불리언과 부동소수점
#include <iostream>
using namespace std;
//불리언과 실수
//불리언(boolean) 참/거짓
bool isHighLevel = true;
bool isPlayer = true;
bool isMale = false;
//[Note]
//bool은 1비트만 사용함. 하지만 1바이트 정수이다. -> why? 최소 단위가 1바이트이기 때문
//어셈블리에서는 bool이라는 것은 없음
//bool만 봐도 참/거짓 둘 중 하나라는 힌트가 됨. (가독성)
int isFemale = 1;//int를 사용해도 bool과 같은 의미로 사용 가능하다
//실수 (부동소수점)
//float double
//3.14
//쩜 앞/뒤를 기준으로 16/16씩 끊으면? -> (0~65535) . (0~65535) 좋은 방법이 아니다.
//부(浮)동(動)소수점
//.을 유동적으로 움직여서 표현하는 방법
//ex)3.1415926535를 표현 할 때
//3.1415926535 = 0.31415926535 * 10 = 314.15926535* 10^-2
//1)정규화 = 0.31415926535 * 10
//2)31415926535 (유효숫자) 1 (지수/몇승을 곱했는가)
//float 부호(1) 지수(8) 유효숫자(23) = 32비트 = 4바이트 => 더블보단 작고 간단한 숫자를 표현할 수 있다.
//double 부호(1) 지수(11) 유효숫자(52) = 64비트 = 8바이트 => 더 정밀하고 큰 숫자를 표현할 수 있다.
//ex)-3.375라는 값을 저장
//1) 2진수로 변환 = (3)+(0.375) = 0b11 + 0b0.011 = 0b11.011
// 0.375 = 0.5 * 0 + 0.25 * 1 + 0.125 * 1 = 0b0.011
//2) 정규화 ob1.1011 * 2^1
// 1(부호) 1(지수) 1011(유효숫자)
//단 지수는 unsigned byte라고 가정하고 숫자 + 127을 만들어줌
//3) 예상 결과: ob 1 10000000 10110000000000000000000
//프로그래밍 할 때 부동소수점은 항상 '근사값' 이라는 것을 기억해야함.
//특히 수가 커질 수록 오차범위도 매우 커짐
//실수 2개를 ==으로 비교하는 것은 지양해야함
float attackSpeed = -3.375f; //float은 4바이트
double attackSpeed2 = 123.4123; //double은 8바이트
int main()
{
cout << isMale << endl;
}
Author And Source
이 문제에 관하여(불리언과 부동소수점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sansam41/불리언과-부동소수점저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)