• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

unsigned integer 실습 질문

21.08.08 13:18 작성 조회수 165

0

교수님 안녕하세요, 교수님이 숙제 내주신대로 unsigned integer을

cout << std::pow(2, sizeof(unsigned int)*8)-1 << endl;

로해서 돌리면 커맨드 창에 4.29497e+09이런 숫자로 나옵니다

cout << std::numeric_limits<unsigned int>::max() << endl;로 하면 

4294967295이 제대로 나오구요( 2^32-1)

둘이 같은 숫자 같지만 왜 하나는 "4.29497e+09" 이런 식으로 나오는지 여쭤봅니다. 감사합니다!

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.08.08

안녕하세요!

사진에서 알 수 있다시피 pow 는 double 를 리턴하는 함수입니다. 즉, 결과를 '실수'로 리턴을 하는거에요!

4294967295 을 실수로 표현하다보니 저런 결과가 나온 것입니다.