반응형
* 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
'C++ > C++ 기초 프로그래밍' 카테고리의 다른 글
C++ 기초 프로그래밍 - 문자와 문자열 (0) | 2025.03.10 |
---|---|
C++ 기초 프로그래밍 - 정수 (0) | 2025.03.10 |