타입 | 크기(byte) | 범위 |
char | 1 | -127 ~ 127 |
int | 4 | -2147483647 ~ 2147483647 |
__int64 | 8 | -9223372036854775807 ~ 9223372036854775807 |
C언어를 배우면서 이런 표는 다들 보셨을겁니다. 정말로 표에 저것만 나와있다면 던져버리세요.
왜 변수의 범위가 저렇게 정해졌는지 궁금하셨죠? 알고 있어도 궁금하다고 해요.
1바이트는 8비트 입니다. 1비트는 오직 0과 1만 가질 수 있죠. int형 변수는 32(4 X 8)개의 비트로 숫자를 나타냅니다.
이렇게
0000 0000 0000 0000 0000 0000 0000 0000
감이 오나요? 이진수입니다.
int형의 최대값인 2147483647는 2진수로 0111 1111 1111 1111 1111 1111 1111 1111 입니다.
왜 앞에 1하나가 비냐고 물으신다면... 변수의 첫 비트는 -를 나타내기 위해 사용됩니다.
그래서 1111 1111 1111 1111 1111 1111 1111 1111 은 최소값 -2147483647을 나타내죠.
처음 비트까지 사용하여 양수값을 저장하고 싶으시다면 변수 타입앞에 unsigned키워드를 붙여주시면 됩니다.
마찬가지로 char형 변수는 0111 1111의 십진수인 127을 최대값으로 가집니다.
ps.아.... 정말로 소재가 다 떨어졌어요. bigfloat개발일지라도 쓸까요????
bigfloat클래스가 슬슬 귀찮아요.jpg
'(임시휴재) Fanta's Post' 카테고리의 다른 글
최대공약수와 최소공배수 (0) | 2009.03.14 |
---|---|
Bit twiddling Hack : 정수의 부호 계산 (0) | 2009.02.28 |
시간복잡도 (4) | 2009.02.14 |
포스팅연기 (1) | 2009.02.11 |
순열과 조합 (2) | 2009.02.05 |