1 000000000 | = 1.0 ´ 109 = 1.0e9 | ||
123000 | = 1.23 ´ 105 = 1.23е5 | ||
322.56 | = 3.2256 ´ 102 = 3.2256е2 | ||
0.000056 | = 5.6 ´ 10-5 = 5.6е-5 |
В первом столбце числа изображены в обычной записи, во втором приведена соответствующая алгебраическая запись, а в третьем столбце числа показаны в том виде, в котором они обычно представляются при вводе в машину и при выводе из нее - с символом е, за которым следует показатель степени по основанию десять (порядок).
Обычно для размещения в памяти числа с плавающей точкой отводится 32 бита - 8 бит для представления порядка и знака и 24 бита - для мантиссы (т. е. коэффициента при степени десяти). Важным фактом, который вам необходимо знать, является то, что такой способ дает возможность представлять числа с точностью до 6-7 десятичных цифр в диапазоне ±(10-37 - 1038). Это может оказаться удобным, если вам понадобится обрабатывать числа того же порядка, что масса Солнца (2.0е30 кг) или заряд протона (1.6е-19 Кл). (Многим нравится использовать подобные числа.)
Во многих ЭВМ предусматривается обработка данных типа double (вычислений с двойной точностью), когда для представления чисел используется удвоенное число битов, чаще всего 64. В некоторых машинах все 32 добавочных бита используются для хранения мантиссы. Это увеличивает число значащих цифр и уменьшает ошибку округления. В других машинах некоторое число битов из дополнительного набора используется для хранения большего порядка: это расширяет диапазон представления чисел.
Другой способ определения данных типа double заключается в использовании ключевых слов long float.
Описание переменных с плавающей точкой
Переменные с плавающей точкой описываются и инициализируются точно таким же образом, что и переменные целого типа. Ниже приведено несколько примеров:
Константы с плавающей точкой
Правила языка Си допускают несколько способов записи констант с плавающей точкой. Наиболее общая форма записи константы - это последовательность десятичных цифр со знаком, включающая в себя десятичную точку, затем символ е или Е и показатель степени по основанию 10 со знаком. Вот два примера:
Знак + можно не писать. Разрешается также опускать либо десятичную точку, либо экспоненциальную часть, но не одновременно. Кроме того, можно не писать дробную или целую часть, но не обе сразу. Ниже приведено еще несколько правильно записанных констант с плавающей точкой:
Использовать пробелы при записи констант запрещается
В процессе обработки константы с плавающей точкой рассматриваются в формате с удвоенной точностью. Предположим, например, что переменная some типа float получает свое значение в результате выполнения оператора
В этом случае константы 4.0 и 2.0 размещаются в памяти как данные типа double, т. е. для каждой из них (обычно) отводится 64 бит. Их произведение (равное 8) вычисляется с помощью операции умножения, выполняемой с двойной точностью, и только после этого производится усечение результата до нормального размера, соответствующего типу float. Все это обеспечивает максимальную точность ваших вычислений.
Переполнение и потеря значимости при обработке чисел с плавающей точкой
Что произойдет, если значение переменной типа float выйдет за установленные границы? Например, предположим, что вы умножаете 10е38 на 100 (переполнение) или делите 10е - 37 на 1000 (потеря значимости). Результат целиком зависит от реакции вашей вычислительной системы. В нашей системе при возникновении состояния "переполнение" результат операции заменяется максимально допустимым числом, а при потере значимости - нулем. В других системах в подобной ситуации могут выдаваться предупреждающие сообщения, выполиение задачи можно приостановить, или вам будет предоставлена возможность предпринять что-нибудь самому. Если этот вопрос окажется для вас сушественным, вам необходимо будет свериться с правилами, действующими для вашей ЭВМ. В случае если вы не сможете найти никакой информации, не бойтесь пробовать другие возможности.
Резюме: основные типы данных
Ключевые слова
Данные основных типов вводятся в программу при помощи следующих семи ключевых слов: int, long, short, unsigned, char, float, double.
Целые числа со знаком
Данные этих типов могут принимать положительные и отрицательные значения.
int: основной целый тип, используемый в вычислительной системе;