PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2013/02/25 15:54:12
Name Abelian Group
Subject c언어 고수분들 질문드립니다^^;

typedef unsigned int u32;
typedef unsigned long long int u64;


int main(void)
{
        u32 m, log_t, s, log_N;
        u64 N, t;
        double f;

        m=1024;
        log_t=10;
        s=32;
        log_N=35;


        t=1 << log_t;
        N=1 << log_N;


        f=(double) (m*t*t*s/N);

        printf("%f \n", f);




        return 0;
}




f가 1이 나와야 하는데, 4294967296.000000 이 나오네요....

자료형 때문인 것 같은데 뭐가 잘못 된지 모르겠습니다.

f가 1이 나올수 있도록 하려면 어떻게 해야 하나요?



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
우소미
13/02/25 15:59
수정 아이콘
t=1 << log_t;
N=1 << log_N;

이 부분에서 연산 우선 순위상 1 << log_t 가 먼저 계산 되기 때문에 그렇습니다.
아래와 같이하면 됩니다.

t = 1;
N = 1;
t <<= log_t;
N <<= log_N;
꿀호떡a
13/02/25 15:59
수정 아이콘
N=1 << log_N; 이 부분이 문제입니다. 결국 1 << log_N을 계산한 후에 N에 집어넣어라, 인데 1도 32bit integer, log_N도 32bit integer이므로 N이 64bit integer라고 하더라도 type casting이 일어나기 전에 이미 overflow가 되어버리죠.

해결책은 1LL << log_N 이렇게 하시면 1이 64bit integer가 되기 때문에 casting이 잘 일어납니다.
꿀호떡a
13/02/25 16:03
수정 아이콘
쉽게 생각해서, double f = 3 / 2; 했을 때 f에 1.5가 아니라 1이 담기는 이유를 생각해보시면 됩니다.
Abelian Group
13/02/25 16:48
수정 아이콘
앗 모두들 정말 감사합니다^^
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
161210 일제차 왜 별로 없을까요 [13] 채넨들럴봉4800 13/02/25 4800
161209 조립 컴퓨터업체 추천 부탁드립니다. [6] 나를찾아서3143 13/02/25 3143
161207 서울의 이비인후과 추천부탁드립니다. [4] 더미짱6116 13/02/25 6116
161206 김형오 전 국회의장은 어떤 사람인가요? 마스터충달4057 13/02/25 4057
161205 턱관절이 아프면 어느 병원을 가야 하나요? [7] 노련한곰탱이4053 13/02/25 4053
161204 게임시 키 세개를 누르면 삐삐비 소리가 납니다. [6] 에이치투3580 13/02/25 3580
161203 pc 관련 질문드립니다 [2] 백색왜성2295 13/02/25 2295
161202 플스2용 롤플레잉 게임 할만한거 뭐가 있을까요??(한글화된것들중) [9] 리얼리스트가4950 13/02/25 4950
161201 무료 바이러스 치료 프로그램 추천받아요 [7] flowers6894 13/02/25 6894
161200 면세점 400불 초과 질문드려요. [9] 神용재3591 13/02/25 3591
161199 병점에서 신길까지 급행열차 소요시간이 얼마나 되나요? [2] 민머리요정2198 13/02/25 2198
161198 마인크래프트 정품 질문입니다. 엔비1999 13/02/25 1999
161197 엑셀 콤보박스 사용관련 질문입니다. [2] 메모박스3010 13/02/25 3010
161196 [정보추가]서울에 2일정도 묵을만한 숙소 추천부탁드려요(가족) [3] 바닥인생1655 13/02/25 1655
161195 갤노트 젤리빈 업글하면 속도가 느려지나요? [4] 시오리2299 13/02/25 2299
161193 이런 니트는 어디서 사야할까요....사진有 [4] 라리2582 13/02/25 2582
161192 필수과목 학점포기가 가능한가요? [5] 네모콜라2103 13/02/25 2103
161191 c언어 고수분들 질문드립니다^^; [4] Abelian Group1768 13/02/25 1768
161190 유게 10억vs먹기보고 생각났는데, 자신이 제일 많이 먹어본적은? [21] legend2392 13/02/25 2392
161189 이사를 한 후부터 토렌트가 되질 않습니다. 원인이 무엇일까요? [3] Gakky2891 13/02/25 2891
161188 키움증권 영웅문 질문입니다. [1] WestSide2503 13/02/25 2503
161187 대용량 mp3 선택지가 너무 적음! [7] 커트의가디건3369 13/02/25 3369
161186 2012년 최고의 유행어는 무엇일까요? [15] Tad2897 13/02/25 2897
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로