나 개발자 진짜 되냐?

[ C++ 기본 문법 3 ] Boolean 과 실수 본문

C++을 시작해봐요!/문법정리를 해보았어요!

[ C++ 기본 문법 3 ] Boolean 과 실수

Snow Rabbit 2025. 2. 17. 21:57

 

정수만 있는 줄 알았는데.. 실수도 있고 불값도 있네..ㅎㅋ

 

공부해 보자!

 


 

Bool

즉, 참 / 거짓을 표현할 때 사용하는 친구

 

bool isPlayer = true;

bool isMale = false;

 

true는 1이고 false는 0이라 사실은 1byte 정수에 불과하다.

근데 뭐 더 편한 방법으로 ( 아마 가독성? )

bool을 사용하는 것이다.

 

심지어 0이랑 1 뿐이라 1비트만 쓰면 되는데..

최소단위가 1byte이기 때문에 ( 0000 0000 )
어쩔 수 없이 1바이트 불리언이 탄생하게 된다.

 


 

실수

 

뭐 말 그대로 소수점이 있는 수들을 말한다.

3.1415 , 0.282 등등

 

실수에는

float / double

이렇게 두 가지만 존재한다.

 

 

부동소수점의 경우

기본적으로

double로 되어있어서

 

float를 쓸 땐, 숫자 옆에 f를 써주어야 한다.

float c =  0.28f

double k = 1.01

 

float는 4바이트고 ( int랑 똑같소! )  double는 8바이트이다.

 

이 실수들을 컴퓨터에서 표현하기 위해서 우리는

 

부동소수점

 

을 사용하게 된다.

 

이 부동소수점의 뜻은 움직이지 않는다?라는 뜻이 아니라

오히려 움직인다 라는 뜻을 가지고 있다. 유동적인 친구라고 생각해 주면 된다.

 

아까 3.1415926535인 친구를 가져와보자.

 

이 친구를 다시 표현하면

0.31415926535 * 10으로 표현이 된다.

 

앞에 있는 숫자들을 유효숫자라고 표현하고

10의 지수인 1을 우리는 지수라고 표현한다.

 

float에서는 부호가 ( 1 ) 지수가 ( 8 ) 유효숫자 ( 23 ) = 총 ( 32 ) 비트 = ( 4 ) 바이트를 사용한다.

 

double에서는 부호가 ( 1 ) 지수가 ( 11 ) 유효숫자 ( 52 ) = 총 ( 64 ) 비트 = ( 8 ) 바이트를 사용한다.

 

바구니 크기가 두 배인 만큼 숫자도 많이 들어가기에

정교한 소수점은 double, 간단한 거면 float 사용하는 것을 권장한다.

 

프로그래밍을 할 때 주의해야 할 점은

부동소수점은 항상 ' 근삿값 ' 인 것 을 기억해야 한다.

 

이게 무슨 말이냐

 

1/3만 봐도 0.33333333333333333333333333

끝없이 이어지기에

어느 정도 근삿값으로 표현하게 된다.

숫자가 커지면 커질수록 이런 오차범위도 매우 커지게 되기에

근삿값인 것을 잊지 말자

 

실수 == 실수

이렇게 쿨하게 같다고 해버리면

이미 오차범위가 있는 친구들이기 때문에 정확하게 일치하지 않다는 것이다.