Вы будете смотреть на старшие 8 или 9 бит. Вот где знак и мантисса значения с плавающей запятой. Значения 0x00 0x80 и 0xFF здесь довольно редки для правильных данных с плавающей точкой.
В частности, если все старшие 9 битов равны 0, то это, вероятно, будет действительным значением с плавающей запятой, только если все 32 бита равны 0. Другой способ сказать, что если показатель степени равен 0, мантисса также должна быть равна нулю , Если старший бит равен 1, а следующие 8 битов равны 0, это допустимо, но также вряд ли будет действительным. Он представляет -0.0, что является допустимым значением с плавающей запятой, но бессмысленным.
Чтобы выразить это в числовом выражении. если старший байт равен 0x00 (или 0x80), то значение имеет величину самое большее 2,35e-38. Постоянная Планка составляет 6,62e-34 м2кг / с, что на 4 порядка больше. Расчетный диаметр протона намного больше, чем этот (оценивается в 1.6e-15 метров). Наименьшее ненулевое значение для аудиоданных составляет около 2,3e-10. Вы вряд ли увидите, что значения с плавающей точкой являются допустимыми измерениями чего-либо реального, которое меньше, чем 2.35e-38, но не ноль.
Если двигаться в другом направлении, если старший байт равен 0xFF, то это значение равно либо бесконечности, либо NaN, либо больше по величине, чем 3,4e + 38. Возраст Вселенной оценивается в 1,3e + 10 лет (1,3e + 25 фемтосекунд). Наблюдаемая вселенная имеет примерно e + 23 звезды, число Авагадро - 6.02e + 23. Еще раз значения с плавающей запятой, большие чем e + 38, редко обнаруживаются в допустимых измерениях.
Это не означает, что FPU не может загружать или производить такие значения, и вы непременно увидите их в промежуточных значениях вычислений, если вы работаете с современными FPU. Современный FPU будет загружать значение с плавающей запятой, имеющее показатель степени 0, но другие биты не равны 0. Они называются денормализованными значениями. Вот почему вы видите, что маленькие положительные целые числа отображаются как значения с плавающей точкой в диапазоне e-42, хотя нормальный диапазон значений с плавающей точкой уменьшается только до e-38
Показатель всех 1 представляет Бесконечность. Вы, вероятно, не найдете бесконечности в своих данных, но вы знаете лучше, чем я. -Infinity равно 0xFF800000, + Infinity равно 0x7F800000, любое значение, кроме 0 в мантиссе Infinity, искажено. искаженные бесконечности используются в качестве NaN.
Загрузка NaN в регистр с плавающей точкой может привести к возникновению исключения, поэтому вы хотите использовать целочисленную математику, чтобы угадать, являются ли ваши данные плавающими или целыми, пока вы не будете уверены, что это int.