본문 바로가기
C++/C++ 기초 프로그래밍

C++ 기초 프로그래밍 - Boolean & 실수

by 부어잉 2025. 3. 10.
반응형

* Boolean : 참, 거짓 

bool isHighLevel = true; 

 

※ Bool 타입은 1Byte 크기의 정수와도 같다. 왜 정수에 포함되지 않을까?

-> 일단 정수보다 훨씬 코드의 가독성이 높아진다.

 

bool isFemale = true;
int isFemale = 1;

// 여성이 1명이다..? 여성의 개수? 의미의 모호함이 존재.
if(isFemale == 1)
{
	
}

//여자가 아니라면 혹은 여자라면 등 불리언에 맞는 가독성의 의미를 가지게 된다.
if(isFemale != true)
{

}

 

  1 Byte의 정수 크기의 의미는?

-> 불리언은 참과 거짓만 있기 때문에 0 과 1 로 이루어져 있다. 따라서 1 Bit의 메모리만 있어도 모든 값이 표현될 수 있지만, 컴퓨터의 모든 연산의 최소 단위가 1Byte 이기 때문에 최소 단위를 위해서 1Byte를 사용한다.

 

 

* 실수 (부동소수점)

 

float : 4 Byte 

double : 8 Byte

둘은 같은 의미에 크기만 다르기 때문에 float형의 변수 뒤에는 꼭 f를 붙여서 float 형임을 나타내야 한다.

그렇지 않으면 double크기로 변수의 메모리가 잡히기 때문에 메모리 누수가 발생할 수 있다.

 

float speed = 0.452f;
double mySpeed = 21.31583;

 

부동소수점 

소수점이 유동적으로 움직이면서 컴퓨터가 실제로 수를 표현하는 방법을 말한다.

 

float : 부호 (1) 지수(8) 유효숫자(23)   => 32 Bit -> 4 Byte

double : 부호 (1) 지수 (11) 유효숫자(52)  => 64 Bit -> 8Byte

 

* 프로그래밍에서 부동소수점(실수)는 근사값과 같다. 즉, 정확한 실수의 값을 계산하여 찾을 수 없다.

수가 커질수록 오차의 범위도 커지기 때문에 == 와 같은 비교 연산자를 사용하는 것은 매우 위험하고 모호한 의미를 가질 수 있으니 주의해야 된다.

728x90