скажем, для типа плавающего в c, согласно спецификации плавающей точки IEEE, существуют 8-разрядный используемый для части, зарегистрированной, и это вычисляется, как сначала взято они 8-разрядные и перевело его в неподписанное число, и затем минус BIASE, который является 2^7 - 1 = 127, и результатом являются диапазоны экспоненты от-127 до 128, включительно. Но почему мы не можем только рассматривать их 8-разрядный шаблон как число со знаком, так как получающийся диапазон [-128 127], который является почти тем же как предыдущим.
Цель смещения состоит в том, чтобы показатель степени сохранялся в беззнаковой форме, что упрощает сравнение. Из Википедия :
Расположив поля так, чтобы бит знака находился в позиции самого старшего бита , смещенная экспонента в середине , затем мантисса в младших значащих битах, результирующее значение будет упорядочено должным образом, независимо от того, интерпретируется ли оно как значение с плавающей запятой или целочисленное значение. Это обеспечивает высокую скорость сравнения чисел с плавающей запятой с использованием оборудования с фиксированной запятой.
В общем, число с плавающей запятой:
[sign] [unsigned exponent (aka exponent + bias)] [mantissa]
Этот веб-сайт предоставляет отличную информацию о том, почему это хорошо - в частности, сравните реализации функций сравнения с плавающей запятой.
Кроме того, ни один полный ответ о странностях с плавающей запятой не может обходиться без упоминания « Что должен знать каждый компьютерный ученый об арифметике с плавающей запятой ». Оно длинное, плотное и немного тяжелое по математике, но это длинное плотное математическое золото (или что-то в этом роде).