Имеет ли субнормальное число неявный 0? - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь понять, что такое ненормальное число, и я предполагаю, что показатель степени зафиксирован на -127, и чтобы уменьшить число, неявное 1 заменяется неявным 0. Это звучит правильно?

1 Ответ

0 голосов
/ 10 декабря 2018

В базовом 32-битном двоичном формате IEEE-754 показатель степени для ненормального числа равен -126, а не -127.Старший бит значимого действительно равен нулю.

Для любого из двоичных форматов IEEE-754, пусть:

  • p будет количеством битов вполное значениеи («р» для точности, 24 для 32-битного формата), смещение будет смещением, используемым для кодирования показателя степени (127 для 32-битного формата), и
  • S - бит в знаковом поле, E - биты в поле экспоненты, а T - биты в поле завершающего значения и *. 1018*

Если E - это не все нули или все единицы, представленное значение является нормальным числом.Его значение (-1) S • 2 E - смещение • (1 + 2 1 р • T).Этот термин 1 + 2 1− p • T может быть изображен как один бит, за которым следует точка радиуса, за которой следуют биты T : «1. T ”.

Если E - все нули, представленное значение равно нулю (если T - ноль) или ненормальному числу.Его значение равно (-1) S • 2 1− смещение • (0 + 2 1− р • T).Обратите внимание на два отличия от нормального значения: показатель степени равен 1− смещения вместо E - смещения , и ведущий бит равен 0 вместо 1.

Обратите внимание, что наименьшие нормальные значения и субнормальные значения имеют показатель степени 1- смещение , что составляет 1−127 = -126 для 32-битного формата.При переходе от нормальных значений к субнормальным значениям мы не изменяем как экспоненту, так и ведущий бит, потому что это приведет к скачку представимых значений.Таким образом, субнормальные значения имеют тот же показатель степени, что и наименьшие нормальные значения;меняется только ведущий бит.

...