Форум программистов, компьютерный форум CyberForum.ru

Сколько в float выделяется под экспоненту ? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Pravednik
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 13
10.11.2012, 12:19     Сколько в float выделяется под экспоненту ? #1
Сколько в float выделяется под экспоненту ? в одном источнике читаю - 1 бит под знак и 7 под экспоненту, в другом - 8 бит под экспоненту

"в 32-битном слове отведены 1 двоичный разряд под знак числа, 8 двоичных разрядов под порядок и оставшиеся 23 разряда - под мантиссу."

" 32-разрядное нормализованное число со знаком, 8-разрядным смещенным порядком и 24-разрядной мантиссой (старший бит мантиссы, всегда равный 1, не хранится в памяти, и размер поля, выделенного для хранения мантиссы, составляет только 23 разряда). "

"В старшем бите 1-го байта хранится знак числа: 0 обозначает плюс, 1 — минус. Оставшиеся 7 бит первого байта содержат машинный порядок. В следующих трех байтах хранятся значащие цифры мантиссы (24 разряда)."

и если под мантиссу отводится 23 бита, то получается, что максимальное число там может поместиться 2^23 = 8388608? однако число это он выводить не хочет, округляет последние цифры.

и еще у меня вопрос)) откуда берутся значащие цифры? почему у float 7 значащих цифр, откуда берется эта цифра, как она получается?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 12:19     Сколько в float выделяется под экспоненту ?
Посмотрите здесь:

C++ Как запрограммировать экспоненту
Как выделяется память под массив string? C++
invalid types `float[float]' for array subscript C++
опять ошибка.на этот раз cannot convert `float (*)(float)' to `float' in argument passing C++
Скольки бит выделяется в float и double под целую часть? C++
cannot convert `float' to `float*. Почему так происходит? C++
C++ Сколько памяти выделяется под структурную переменную
C++ Чем отличаются float преобразования (float)var от float(var)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
10.11.2012, 12:29     Сколько в float выделяется под экспоненту ? #2
Цитата Сообщение от Pravednik Посмотреть сообщение
в другом - 8 бит под экспоненту
Это верно. Источник:
http://www.cs.berkeley.edu/~wkahan/i...us/IEEE754.PDF
Стр. 2.
K+1 - количество бит на экспоненту
N - количество на знак и мантиссу
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
10.11.2012, 12:40     Сколько в float выделяется под экспоненту ? #3
float это в 99% случаев формат single precision. 32 бита: 1 на знак, 8 на порядок, остальные 23 на мантиссу + 1 неявный единичный бит. float представляет числа с плавающей точкой. К примеру, если эти 32 бита имеют такое значение: 491B77A016. Это разрезается на знак, порядок и мантиссу:
1 00100100 0110110111011110100000
Всё это представляет число (–1)1 × 1.01101101110111101000002 × 2001001002 – 12710. То есть примерно –1.42917633056640625 × 2–91 ≈ –5.772397e-28

24 бита — потому что это 23 реально хранящихся бита плюс тот один неявный единичный бит перед двоичной точкой.

7 значащих цифр, потому что в мантиссе 24 значащих бита. Это 24 бита информации о значащих цифрах числа. С помощью 24 битов можно закодировать 24 × log10 2 ≈ 7,225 десятичных цифр. Вот отсюда и семь.
Yandex
Объявления
10.11.2012, 12:40     Сколько в float выделяется под экспоненту ?
Ответ Создать тему
Опции темы

Текущее время: 06:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru