В точности в одной точке имеется значение 23 бит, дающее целочисленный диапазон (если мы только сохраняем дискретное целочисленное значение) до 2^24. Показатель - 8 бит, дающий диапазон до 2^127. При больших значениях величин существует точка, в которой они начинают терять значимые цифры из значения/мантиссы.что называется, когда число с плавающей запятой больше его точности?
Это означает, что число, например (2^32 + 2^8):
0x100000100
0b100000000000000000000000100000000
будет храниться просто как:
показателя 0b00100000
мантиссы/мантиссы 0b00000000000000000000000 (1 impled бит)
и потерять 256 от его точности.
Это, похоже, противоположно так называемым «ненормальным» номерам. По сути, диапазон чисел, хранящихся как целое число в значении, намного меньше, чем диапазон чисел, которые могут быть сохранены при учете экспоненты. Итак, как только вы доберетесь до 2^24, вы начнете терять информацию (возможно, я ошибаюсь в стандарте)! Это кажется противоположным тому, что происходит в субнормальном диапазоне, когда информация теряется, когда имеется значимое значение, но с меньшим показателем, чем 2^-127
Я пропустил что-то в своем понимании стандарта IEEE754?
Если нет, то, что этот сценарий называется, когда большие величины величин теряют точность (что кажется противоположным субнормальным, возможно, «сверхъестественным»)?
И для обеспечения точности следует ограничить все числа с плавающей запятой до - (10^7) < x < 10^7?
EDIT Обновленные номера от 100 000,010, я также добавил больше языка, чтобы объяснить свое понимание.
EDIT 2 @Weather Vane и является правильным. Точка точности с плавающей запятой состоит в том, что она теряет точность в дробном масштабе, как только мы начинаем увеличивать величину, это начинает влиять на целочисленную шкалу, когда величина увеличивает точку радиуса за конец знака
0,0000000000000000000001 -> -> 10000000000000000000000.0 Я могу понять, почему показатель степени намного больше, чем значение для представления наименьших чисел с максимальной возможной точностью, но для больших чисел величин существует целый класс чисел, которые теряют информацию в более чем дробном масштабе как только мы выйдем за пределы 23 сиг-фига в бинай. Я хочу знать, что они называются, если у них даже есть имя, например. «супер нормальный»?
Пожалуйста, используйте двоичный или шестнадцатеричный для значения «100 000,010», иначе вы будете совершенно смущены. Бинарные представления с плавающей запятой не направлены на сохранение десятичных цифр. 10 могут быть потеряны при преобразовании значения в одноточную или не могут быть потеряны или более 10 могут быть потеряны. –
Я понимаю, но информация будет потеряна только в том случае, если мы выйдем за пределы приблизительной 7 достоверной точности фигуры? – lindsaymacvean
Вы ищете слово «округление»? Это единственное, что приходит в голову, чтобы описать ситуацию, в которой вы пытаетесь установить число, которое невозможно представить точно в формате с плавающей запятой. Округление происходит для всех значений, больших или малых, но для целых чисел диапазон -2^24 <= x <= 2^24 является безопасным, да (то есть [-16777216 ... 16777216]) –