Как вы определяете, сколько целых чисел в множестве S всех в 32-битных значениях с плавающей точкой IEEE
Может ли кто-нибудь объяснить мне, что именно он заявляет? Я знаю, что это в основном означает, что это одинарная точность с 1-битным знаком, 8-битным показателем и 23-битным мантиссой. Разве ответ не должен быть просто 2 * 2^8-2 * 2^23?
Редактировать: 2 * 2 ^ 8-2 * 2 ^ 23 определяет все 32-битные значения с плавающей точкой IEEE
1 ответ
Конечное положительное число с плавающей запятой варьируется от 2-149 (наименьшее субнормальное) до 2128-2104 (число с наибольшим показателем для конечных значений и значением всех одного бита). Мы можем сгруппировать их в три категории:
- Значения меньше 1. Ноль из них являются целыми числами.
- Значения от 1 до 224-1. Некоторые из них являются целыми числами, а некоторые нет. Однако каждое целое число в этом диапазоне находится в наборе чисел с плавающей запятой, потому что они имеют не более 24 значащих битов и поэтому могут быть представлены 24-битными значениями. Следовательно, числа с плавающей запятой имеют 224-1 целых числа в этом интервале.
- Значения от 224 и выше. Все они являются целыми числами, потому что наименее значимая позиция в их значении представляет как минимум 1. Этот диапазон содержит все числа с плавающей запятой с показателями (от двух) от 24 до 127 и каждое допустимое значение. Значимыми являются все те, которые начинаются с "1" и сопровождаются любыми 23-мя битами, так что есть 223 значащих. Следовательно, существует (127-24 + 1) • 223 из этих чисел.
Сумма положительных целых чисел составляет 0 + 224-1 + (127-24 + 1) * 223. Число отрицательных целых чисел такое же, и 0 добавляет еще одно, поэтому общая сумма составляет 1 778 384 895.
(Как только мы нашли это число, оно дает нам ключ поиска, чтобы найти повторяющиеся вопросы.)