• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Java int 10진수 최대값을 등비수열로 구하기

19.02.24 14:00 작성 조회수 122

0

안녕하세요?

int의 경우 4 byte = 32 bit라고 이해하고 있습니다. 그렇다면 최대값은 32개의 메모리 공간에 1을 다 넣으면 이진수로 표현하는 int 최대값이고 그 값을 10진수로 변환하기 위해서는 등비수열을 이용하여 합을 구하면 되는 것으로 이해하고 있습니다.

2^0 + 2^1 + 2^2 + ... + 2^31 = 2^32 - 1 (a)

그런데 검색해보면 2^31 - 1의 값이 최대값으로 나옵니다. (a)의 계산에서 잘못된 점이 있는지 확인해주실 수 있나요? 감사합니다.

답변 1

답변을 작성해보세요.

0

korea P님의 프로필

korea P

2021.03.03

아, 32개 비트중 마지막 1개는 부호를 표시하는 비트입니다
1이면 음수 0이면 양수-> 즉 32개비트가 아니라 31개로 수를 표현하는게 맞습니다