Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Арифметические операции



В Си имеется пять арифметических операций: сложение (+), вычитание (-), умножение (*), деление (/) и деление по модулю (%). Операнды арифметических операций должны иметь числовые значения, а форма записи выражений — инфиксная. Все арифметические операции левоассоциативны.

Второй операнд в операциях деления не должен быть равен нулю, а для операции деления по модулю оба операнда должны быть целого типа.

Деление целых чисел приводит к целочисленному результату (делимому).

Правила выполнения всех операций не отличаются от обычных алгебраических, за исключением одного случая. Неясно, какой знак будет получен у остатка при выполнении деления по модулю, если операнды имеют разные знаки. Большинство реализаций Си (в том числе и Microsoft C и Turbo C), присваивают остатку знак первого операнда.

Например,

a b a/b a%b
       
  -3 -3  
-11   -3 -2
-11 -3   -2

Заметим, что стандартом языка оговорено, что всегда должно выполняться соотношение (при b отличном от нуля)

a= (a/b)*b+a%b

(проверьте, что это действительно так).

Типичным применением операции "деление по модулю" является проверка на четность-нечетность операнда: a%2.

При выполнении арифметических операций с операндами различного типа предварительно производится выравнивание типов, которое условно можно охарактеризовать так: происходит преобразование более "короткого" операнда к типу более "длинного". При этом типы по возрастанию располагаются в следующем порядке:

char int long float double long double.





Дата публикования: 2014-12-25; Прочитано: 144 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...