Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Также число с плавающей точкойСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Даже если дробная часть равна 0, как в числе 8.0, наличие десятичной точки гарантирует, что число будет храниться в формате чисел с плавающей точкой, а не целых чисел Второй способ записи чисел с плавающей точкой называется экспоненциальной формой записи или просто экспоненциальной записью, например: 3.45Е6. Эта запись означает, что число 3.45 умножается на 1000000; Е6 означает 10 в 6-й степени. Таким образом, запись 3.45Е6 соответствует числу 3450000. Здесь число 6 называется экспо-нентой, а 3.45 — мантиссой. Рассмотрим несколько примеров:
2.52е+8 // можно использовать Е или е, знак " + " необязателен Е-4 // экспонента может быть отрицательной 7Е5 // то же самое, что и 7.ОЕ+05 -18.32е13 // перед мантиссой может стоять знак "+" или "-" Е12 // государственный долг США, 1989 г. Е24 // масса Земли в килограммах Е-31 // масса электрона в килограммах
Экспоненциальная запись наиболее удобна для очень больших и очень маленьких чисел. Экспоненциальная запись числа гарантирует, что число будет храниться в формате чисел с плавающей точкой, даже если десятичная точка отсутствует. Можно писать, как е, так и е, а экспонента может иметь знак "+" или "-". (см. рис.). Однако внутри числа недопустимы пробелы; так, запись является неверной: 7.2 Е6. Отрицательная экспонента означает не умножение, а деление на 10 в соответствующей степени. Таким образом, 8.33Е-4 означает 8.33 разделить на 10 в степени 4, или 0.000833. Аналогично масса электрона 9.11е-31 кг означает Кг Существует три типа данных для хранения чисел с плавающей точкой: float, double и long double.
Какой тип данных используется для хранения в компьютере константы с плавающей точкой? По умолчанию константы с плавающей точкой, например 8.24 и 2.4Е8, будут иметь тип данных double. Если необходимо создать константу типа float, добавьте к ней суффикс f или F. Чтобы тип константы был long double, нужно применить суффикс 1 или L.
L.234f // константа типа float E20F // константа типа float Е28 // константа типа double L // константа типа long double
Операции и выражения. Выражение в языке С++ – это последовательность операндов, операций и символов-разделителей. Операнды – это переменные, константы либо другие выражения. Разделителями в С++ являются символы:
[ ] () { },;: * = #,
каждый из которых выполняет свою функцию. Выражение может состоять из целого ряда операций и определять выполнение целого ряда шагов по преобразованию информации. По типу выполняемой операции различают арифметические операции, поразрядные логические, присваивания, операции отношения.
Операции и выражения. Арифметические операции.
В языке C++ имеется пять основных арифметических операций: сложение, вычитание, умножение, деление и деление по модулю. Также существуют две специфические операции, к которым относится операция инкремента и декремента. В каждой из этих операций используются два числа (называемых операндами ) для вычисления результата. Знак операции и два операнда составляют выражение. Рассмотрим, например, следующий оператор:
int wheels = 4 + 2;
Числа 4 и 2 являются операндами, знак "+" является операцией сложения, а запись 4 + 2 представляет собой выражение, значение которого равно б.
Ниже описаны пять основных арифметических операций языка C++: • Операция сложения + задает сложение двух операндов. Например, 4 + 20 равно 24.
• Операция вычитания — задает вычитание второго операнда из первого. Например, 12-3 равно 9.
• Операция умножения * задает умножение операндов. Например, 28 * 4 равно 112.
• Операция деления / задает деление первого операнда на второй. Например, 1000 / 5 равно 200. Если оба операнда — целые числа, результатом будет целая часть частного. Например, 17/3 равно 5, дробная часть отбрасывается.
• Операция вычисления остатка от деления % задает нахождение остатка от деления первого операнда на второй. Например, 19 % 6 равно 1, так как число 19 содержит три раза по 6 с остатком 1. Оба операнда должны быть целочисленными данными. Если один из операндов отрицателен, знак результата зависит от реализации языка.
• Операция инкремента ++ увеличивает значение операнда на 1. Например:
int i; i=1; i++;//Здесь переменная i имеет теперь значение 2
• Операция декремента - - уменьшает значение операнда на 1. Например:
int i; i=1; I--;//Здесь переменная i имеет теперь значение 0 Операции и выражения. Операция присваивания.
Язык C++ имеет несколько особенностей выполнения операции присваивания, задаваемого символом операции =. При выполнении операции значение операнда справа от знака равенства записывается в переменную, указанную слева от знака. В отличие от других языков программирования в С++ допускается запись в одном предложении сразу нескольких операций присваивания. Например: int a,b,c,d; a=b=c=d=145; Другая особенность операции присваивания в языке С++ - наличие так называемой комбинированной операции присваивания: переменная операция = выражение
Где переменная – это обычная как-то задаваемая переменная. Операция – это одна из операция, задаваемых знаками: *, /, +, -, %, <<, >>, &, ^, |. Выражение – любое выражение.
Например: int a,b; a=b=10; a+=12; // a теперь имеет значение 22 b-=(a+4); // b теперь имеет значение -16 Арифметические выражения. Приоритет операций и ассоциативность
Можно ли в языке C++ выполнять сложные арифметические вычисления? Да, но нужно знать, какие правила языка C++ при этом используются. Например, многие выражения содержат более одной операции. Отсюда возникает вопрос, какая операция должна выполняться первой? Рассмотрим такой оператор:
int i = 3 + 4*5; //35 или 23?
Здесь число "4" является операндом как в операции сложения (+), так и в операции умножения (*). Когда один операнд может участвовать более чем в одной операции, чтобы решить, какая операция должна выполняться первой, в языке C++ применяются правила приоритета операций. Для арифметических операций используется обычная алгебраическая приоритетность, в соответствии с которой умножение, деление и деление по модулю выполняются перед сложением и вычитанием. Таким образом, 3+4*5 означает 3 + (4 * 5), а не (3 + 4) *. 5. Следовательно, ответ будет 23, а не 35. Порядок выполнения операций можно, разумеется, изменить с помощью круглых скобок. Обратите внимание на то, что операции *, / и % имеют одинаковый приоритет. Аналогично сложение и вычитание обладают одинаковым, но более низким по сравнению с умножением приоритетом. Однако в некоторых случаях правил приоритетности недостаточно. Рассмотрим следующий оператор:
float j = 120/4*5; // 150 или 6?
Число "4" снова является операндом двух операций. Однако операции /и * имеют одинаковый приоритет, поэтому одного приоритета здесь недостаточно, чтобы определить, что делать в первую очередь: делить 120 на 4 или умножать 4 на 5. А этот порядок имеет значение, так как в первом случае результат равен 150, а во втором — 6. Когда две операции имеют одинаковый приоритет, порядок выполнения операций определяется правилом «слева направо». Поэтому j=150.0; Арифметические выражения Преобразования типов данных
Разнообразие типов данных в языке C++ дает программисту возможность выбирать вариант, соответствующий конкретной потребности. Однако такое разнообразие, с другой стороны, усложняет задачу компьютера. Например, сложение двух чисел типа short может выполняться с помощью иных машинных команд, чем сложение двух чисел типа long. Когда имеется 11 типов целочисленных данных и три типа данных с плавающей точкой, компьютеру приходится обрабатывать множество различных случаев, особенно если в одной операции смешаны данные различных типов. Чтобы не допустить возможной путаницы, в языке C++ многие преобразования типов данных выполняются автоматически:
// данные типа int преобразуются в данные // типа float float tree = 3; // данные типа float преобразуются // в данные типа int int guess = 3.9832; Результат: tree = 3.0 guess = 3
Когда некоторая операция выполняется над данными двух разных типов, то данные меньшего типа преобразуются в данные большего типа. Например:
int i=45; float f=450.123; float r=i+f; // результат float
Если не знать, что происходит при таких автоматических преобразованиях, то результаты выполнения некоторых программ могут оказаться для вас неожиданными. Приведение типов:
В общем виде: (имяТипа) значение // преобразует значение в данные типа имяТипа ИмяТипа (значение) // преобразует значение в данные типа имяТипа
Пример: float f=450.123; int guess; guess = (int)(3.9832 + f); Или guess = int(3.9832 + f); Операции и выражения.
|
||||||||||||||||
Последнее изменение этой страницы: 2016-04-26; просмотров: 557; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.62.5 (0.011 с.) |