#include <stdio.h>
int main(void)
{
int min = (int)10e10;
int max = (int)-10e10;
int temp = 0xffffffff;
printf("min %d %x\n",min,min);
printf("max %d %x\n",max,max);
printf("temp %d %x\n",temp,temp);
getchar();
getchar();
return 0;
}
결과
min 2147483647 7fffffff
max -2147483648 80000000
temp -1 ffffffff
minf 99999997952.000000 e0000000
maxf -99999997952.000000 e0000000
->http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=66684087&qb=KGludCkxMGUxMA==&enc=utf8§ion=kin&rank=3&search_sort=0&spq=0&pid=ROvDzc5Y7tCsscA9dG4ssssssso-030211&sid=UdDlzHJvLBkAAHi9Q5s
->min=(int)10e10;
부동소수 표현입니다.
앞의 10은 가수, 뒤의 10은 밑을 10으로 하는 거듭제곱수.
10 곱하기 10의 10승
따라서, 10e10 = 10 * 10^10 = 10^11 이니 천억이 되겠네요.
또 하나의 예를 들면, 2e4 이면 2*10^4 = 20000 입니다.
그런데 제시한 코드에서 이상한 것은 결국 int로 형변환 해버리므로 int의 최대값을 구해서 넣는 것이 나을 것으로 보입니다. 즉, min = ~(1<<(sizeof(int)*8-1));
한편, unsigned int의 최대 값은 ~0 입니다.
'컴퓨터 과학 & 영상처리 관련 > C / C++' 카테고리의 다른 글
c 파일 저장 (0) | 2012.08.01 |
---|---|
동적할당 new BYTE()와 new BYTE[] (0) | 2012.07.18 |
cpp 예약어들(keywords)(c++11 포함) (0) | 2012.07.16 |
cpp 캐스트 연산자 (0) | 2012.07.10 |
템플릿 , 연산자 오버로딩 등 (0) | 2012.07.10 |