2015-12-09 3 views
3

Я читал, как целые числа хранятся в переменных в c, что последний бит используется для знака целого числа, а остальные бит используются для хранения номера.Как значения float или double хранятся в переменных в C?

Но если мы возьмем двойную переменную и длинную переменную int в c, оба имеют размер 4 байта, но float может хранить очень большие цифры до диапазона 10 , но long int того же размера не может хранить такую ​​огромную ценность.


Я хочу понять механизм, который используется при хранении в поплавке.

+3

Представление любого типа данных всегда * определено при реализации *. –

+0

Вот одно [популярное представление] (https://en.wikipedia.org/wiki/IEEE_754-1985) для чисел с плавающей запятой. –

+0

Используйте Google, чтобы найти объяснение о кодировании с плавающей точкой. Или просто откройте Википедию. – i486

ответ

5

Язык C не требует любого конкретного представления для floating point чисел.

Сегодня большинство реализаций C используют IEEE floating numbers (исключения необычны, возможно, некоторые Series Z мейнфреймы от IBM).

Читать http://floating-point-gui.de/

+1

Помимо теории, эти статьи предоставили бы ОП подробную информацию о фактической довольно распространенной реализации: https://en.wikipedia.org/wiki/Single-precision_floating-point_format и https://en.wikipedia.org/wiki/Double -precision_floating-point_format – chqrlie

5

Полное объяснение можно найти here. В принципе, число не полностью сохраняется, только приблизительно. 32 бита используются для хранения как можно большей точности.

+1

Также документальная двойная точность: https://en.wikipedia.org/wiki/Double-precision_floating-point_format. OP выглядит несколько смущенным: он упоминает 'double', где он означает' float'. Также укажите, что это всего лишь реализация, наиболее распространенная, но не единственная. – chqrlie

Смежные вопросы