char : 1Byte
short : 2Byte
int : 4Byte
long : 4Byte
long long : 8Byte
float : 4Byte
double : 8Byte
우리가 코드를 짜면 컴파일러는 기본적으로 int 단위로 연산을 수행한다.
short를 사용하게 되면 내부적으로 Int로 변환하여 연산을 하고 다시 short로 변환하여 값을 보여주게 된다.
메모리를 매우 아껴 써야 하는 특수한 경우가 아니라면 short대신 int를 사용하는 것이 성능에 도움이 된다.
1Byte = 8bit
8bit으로 256가지를 표현 가능하다.
그럼 int는 4byte니까 2^32. 즉 4,294,967,296개가 표현 가능하다. 40억 개.
보통 signed를 사용하니 21억 조금 넘게 표현이 가능한다.
알고리즘 문제를 풀 때 10억이 넘어가는 수를 연산하게 되는 경우가 생긴다면, *3을 하면 범위를 벗어나게 된다.
기억해두자! 10억을 연산하는 경우가 생기면 그냥 long long 사용하기!!!
그렇다면 long long의 범위를 벗어는 경우는 어떨까?
내가 더 큰 새로운 Type을 정의해서 문제를 해결할 수 있다!
하지만 매우 어려우므로 알고리즘 시험에서 이런 문제가 나오면 조용히 짐을 싸면 된다!
float, double은 실수를 저장할 수 있는 데이터 형식이다.
우리가 실수형 변수에 값을 할당하면, 컴퓨터는 이 수를 부동소수점(floating-point) 표기법을 사용하여 저장한다.
float은 4byte, 즉 32 bit을 갖고 있는데
부호를 위해 1bit.
지수 표현을 위해 8bit.
가수 표현을 위해 23bit을 사용한다.
-118.625의 절댓값을 이진수로 바꿔보자.
118.625 = 1110110.101 (2) = 1.110110101 * 10^6
자, 부호 bit는 -이므로 1이 들어갔고,
지수 부분의 6은 *익세스 표현법을 사용하여 10000101이 되었다.
가수 부분은 소수점 자리가 그대로 들어간다.
컴퓨터는 float을 저렇게 저장하기 때문에 같은 4byte지만, int보다 훨씬 많은 표현 범위를 갖고 있다.
*익세스 표현법 : 지수 부분의 값을 반우로 나누어 그 값을 0으로 간주하여 음수 지수와 양수 지수를 표현하는 방법.
-127~128의 값을 표현한다. (ex. 0=10000000, 128=11111111)
'공부 > 프로그래밍기본' 카테고리의 다른 글
Xcode에서 c Project 생성하기 (0) | 2019.07.28 |
---|---|
모듈러 연산의 특징 (0) | 2019.07.24 |
확률 (0) | 2019.07.24 |
비트연산 (0) | 2019.07.22 |