В Си имеется много предопределенных числовых констант, которые используются в инженерных и научных расчетах:
M_PI число π 3,14159265358979323846
M_E число e 2,7182818284590452354
M_LOG2E log2e 1,4426950408889634074
M_LOG10E lg e 0,43429448190325182765
M_LN2 ln e 0,69314718055994530942
M_LN10 ln 10 2,30258509299404568402
M_PI_2 π/2 1,57079632679489661923
M_PI_4 π/4 0,78539816339744830962
M_1_PI 1/π 0,31830988618379067154
M_2_PI 2/π 0,63661977236758134308
M_2_PI 2/ 0,63661977236758134308
M_SQRT2 1,41421356237309504880
M_SQRT1_2 1/ 0,70710678118654752440
ВЫРАЖЕНИЯ
В любой программе требуется производить вычисления. Для вычисления значений переменных используются выражения (формулы), которые состоят из операндов, знаков операций и скобок.
Операнды задают данные для вычислений. Операции задают действия, которые необходимо выполнить. Каждый операнд, в свою очередь, является выражением или одним из его частных случаев, например константой или переменной. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки.
Итак, под выражением понимается последовательность констант, переменных и функций, связанных знаками операций и скобками. В зависимости от типа операндов (констант, переменных или функций), используемых в выражениях, они могут иметь целый или вещественный тип.
Выражения целого типа
В этих выражениях используются операнды целого или символьного типов, связанные круглыми скобками и знаками арифметических, логических, побитовых операций и операций сравнения.
К арифметическим операциям относятся:
+ сложение 3 + 2 = 5
- вычитания 5 – 2 = 3
* умножение 3 * 2 = 6
/ деление нацело 5 / 3 = 1
% остаток от деления 5 % 3 = 2
5 % 2 = 1
5 % 1 = 0
5 % 5 = 0
2 % 3 = 2
++ инкремент x++ = x + 1
++x = x + 1
-- декремент x-- = x – 1
--x = x – 1
В отличие от Паскаля, в выражения целого типа языка Си могут входить и операнды символьного типа (char), при этом операции выполняются над кодами символьных констант, а результат может быть выражен или целым числом, или символом:
‘A’ + 3 = ‘D’
‘A’ + 3 = 68
‘a’ – 32 = ‘A’
‘a’ – 32 = 65
‘0’ + 1 = 49
‘0’ + 1 = ‘1’
В языке Си используются три логические операции:
!НЕ отрицание, инверсия,
||ИЛИ логическое сложение, дизъюнкция,
&&И логическое умножение, конъюнкция
и шесть операций сравнения:
== равно,
!= не равно,
> больше,
>= больше или равно,
< меньше,
<= меньше или равно.
Внимание! Операция равно в Си обозначается не одним, как в Паскале, а двумя знаками равенства: ==
Результатами логических операций и операций сравнения могут быть две константы:
1 – истина,
0 – ложь.
Причем считается, что если операнд в выражении не равен нулю (не ложь), то он имеет значение истина:
5&&3 = 1истинаИистина есть истина
5&&0 = 0 истинаИложь есть ложь
5||3 = 1
5||0 = 1
0||0 = 0
!1 = 0 НЕистина есть ложь
!5 = 0
5 == 5 = 1 5 равно 5 есть истина
5 == 3 = 0
5!=5 = 0 5 не равно 5 есть ложь
5!=3 = 1
5>3 = 1
5<=3 = 0
Побитовые операции выполняются над двоичными кодами операндов, над каждым разрядом кода отдельно. К ним относятся:
&И 5&3 = 1 101 = 5
&
011 = 3
___
001 = 1
|ИЛИ 5|3 = 7 101 = 5
|
011 = 3
___
111 = 7
^ исключающее ИЛИ 5^3 = 6 101 = 5
^
011 = 3
___
110 = 6
Приоритет выполнения операций:
!НЕ
- изменение знака
++ инкремент
-- декремент
Эти операции имеют наивысший приоритет и выполняются в выражениях справа налево.
За ними следуют операции:
*, /, % операции типа умножения
+, - операции типа сложения
>, >=, <, <= операции сравнения
== ,!= операции равенства
& побитовое И
^ исключающее ИЛИ
| побитовое ИЛИ
&& логическое И
|| логическое ИЛИ
Эти операции выполняются в выражениях слева направо. Порядок вычислений может быть изменен с помощью круглых скобок.