본문 바로가기

(임시휴재) Fanta's Post

변수의 범위

타입 크기(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