2017-10-25 14 views
0

아무도 정확히 무엇을 말하고 있는지 설명 할 수 있습니까? 이것이 기본적으로 1 비트 부호, 8 비트 지수 및 23 비트 가수가있는 단일 정밀도임을 의미합니다. 대답은 단지 2 * 2^8-2 * 2^23일까요?얼마나 많은 정수가 32 비트 IEEE 부동 소수점 값의 집합 S에 모두 들어 있는지 알 수 있습니까

편집 : 2 * 2^8-2 * 2^23가 모두 32- 비트 IEEE 부동 소수점

+0

귀하의 제안 대답은 모든 부동 소수점 값을 계산; 질문은 * 정수 * 값을 물었다. 대략적인 추정치로, 절반 이하가 정수라고 말하고 싶습니다. 지수가 0보다 작은 것은 정수가 될 수 없습니다 (0이 아닌 경우). exponent> = 23 (가수의 크기)을 갖는 것은 확실히 정수입니다. – jasonharper

+0

Nvm이 그것을 알아 냈습니다. 도움을 주셔서 감사합니다! – Lawdevo

답변

3

유한 한 양의 부동 소수점 숫자 값 범위 결정 하는가 2 -149 (최소 비정규 행)에서 2 -2 (유한 값의 경우 지수가 가장 크고 모든 비트의 유효 숫자가있는 숫자)입니다. 다음 세 가지 범주로 그룹화 할 수 있습니다.

  • 1보다 작은 값은 정수입니다.
  • 값은 1에서 2까지이다. -1. 이들 중 일부는 정수이고 일부는 정수가 아닙니다. 그러나이 범위의 모든 정수는 최대 24 개의 유효 비트를 가지므로 24 비트 유효 숫자로 표현할 수 있기 때문에 부동 소수점 수 집합에 속합니다. 따라서 부동 소수점 숫자는이 간격에 2 -1 정수를 갖습니다.
  • 값은 2 이상입니다. 유효 숫자의 최하위 자리가 최소 1을 나타내므로이 모두는 정수입니다.이 범위는 24에서 127 사이의 지수 및 허용 된 모든 유효 숫자를 갖는 모든 부동 소수점 숫자를 포함합니다. significand는 모두 "1"로 시작하고 23 비트가 뒤에 오는 것입니다. 따라서 significands가 있습니다. 따라서이 숫자 중 (127-24 + 1) • 2 이 있습니다. 양의 정수에 대한

총 0 + 2 24 -1 + (127-24 + 1) * 2 23 이다. 음의 정수의 수가 동일하고 0이 하나 더 더해 지므로 총합은 1,778,384,895입니다.

(우리는 그 번호를 발견하면, 그것은 우리에게 중복 질문을 찾을 수있는 검색 키를 제공합니다.)

+1

질문은 중복되었지만 대답은 원본에서 더 명확합니다 (예 : 지수에 편향되지 않은 값 사용). –

+1

정수인 비트 패턴의 수를 알고 싶다면 양수와 음수 0을 모두 계산해야합니다. –