float의 max가 왜 이렇게 도출되는 걸까요?

익명 사용자의 이미지

제가 알기로는 가장 큰 float 메모리는

0(부호) | 11111111(지수부) | 11111111111111111...(가수부:1이 23개)로

1.11111111111111111111111(2) * (2의 128승)을 해서

680564693277057719623408366969033850880(10)가 나와야 할 것 같은데

340282346638528859811704183484516925440(10)가 float의 max라고 하더군요

위의 올바른 float의 max의 이진수를 보면 제가 도출한 답안 보다 0이 하나 더 적던데

제가 어느 부분에서 계산을 실수한 것일까요?

Anti-Lock의 이미지

지수부가 모두 1인경우,
nan, +inf, -inf 인 경우에 해당합니다.

https://en.wikipedia.org/wiki/IEEE_754-1985

제가 알기로는 가장 큰 float 메모리는
 
0(부호) | 11111111(지수부) | 11111111111111111...(가수부:1이 23개)로
 
1.11111111111111111111111(2) * (2의 128승)을 해서
 
680564693277057719623408366969033850880(10)가 나와야 할 것 같은데
 
340282346638528859811704183484516925440(10)가 float의 max라고 하더군요
 
위의 올바른 float의 max의 이진수를 보면 제가 도출한 답안 보다 0이 하나 더 적던데
 
제가 어느 부분에서 계산을 실수한 것일까요?