2Byte
, int는 2Byte
이상, long은 4Byte
8Bits
, 1Bytes
16Bits
, 2Bytes
64Bits
, 8Bytes
short int sinteger = -3;
unsigned short int Unsinteger = -3; // Unsigned int이므로 양수부만 존재
cout << sinteger << endl; // -3 출
cout << Unsinteger << end; // -3이 출력되지 않고 쓰레기값 출력
: 컴퓨터는 고정 소수점과 부동 소수점이 존재
정수를 표현하는 비트와 소수를 표현하는 비트를 미리 고정하고 해당 비트만을 사용하여 실수로 표현
처음 1비트는 sign(부호)를 나타내며 양수는 0, 음수는 1
다음 15비트는 integer(정수부), 16비트는 fractional(소수부)
부동 소수점
소수점 자리를 변경하는 방식으로 더 큰 실수 표현 가능
실수를 표현하는 방식이 부정확할 수 있음
2진수를 정규화
표현 방식:
처음 1비트는 sign(부호)를 나타내며 양수는 0, 음수는 1
다음 8비트는 exponent(지수부) [bias 127을 더함]
→ bias: if 2^10이라면 exponent에 10+127인 137을 입력함
다음 23비트는 Mantissa(가수부)
ex) 7.625의 경우
부동소수점
float
, double
, long double
모두 부동 소수점float
는 정밀도가 낮아 오차가 발생하여 8byte
double
을 더 많이 사용float
는 6~9자리
, double
은 15~18자리
로 2배 차이Float
vs Double
double
1번 연산량은 float
2번 연산량과 동일