Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Арифметические операции над данными целочисленных типов




Над данными целочисленных типов определены следующие операции: +, -, *, / (целочисленное деление, в Паскале эта операция называется div), % (взятие остатка, в Паскале эта операция называется mod), ++, --(последние две операции могут быть префиксными и постфиксными), >>,<<,&, | ,^, ~.

Сначала разберемся с целочисленным делением. Рассмотрим следующий пример:

float a;

а=1/2;

Вопрос: какое значение получит переменная а ?

Ответ: 0. Дело в том, что если оба операнда операции деления целые, то выполняется целочисленное деление. Что потом мы сделаем с результатом (в данном случае результат присваивается вещественной переменной), значения не имеет. Ситуации, подобные приведенным,

очень часто портят нервы начинающим программи­ровать на Си. Как же выйти из положения? Вариантов существует несколько (один еще будет рассмотрен ниже). Например, можно один (любой) из операндов сделать вещественным (а можно и оба, это уже роли не играет), т.е. записать выражение

так: а=1. /2;.

Перейдем к рассмотрению операций инкремента (++) и декремента (--). Эти операции могут применяться исключительно к переменным и, соответственно, увеличивают и уменьшают значение переменной на 1. В Паскале имеются соответствующие процедуры inc и dec. Наличие в Си данных операций связано с тем, что в системе команд большинства микропроцессоров имеются специальные операции для увеличения и уменьшения значения (обычно в регистре) именно на 1. Поэтому запись а++; предпочтительнее записи a=a+l;, поскольку в большинстве случаев операция инкремента выполняется быстрее. Одна из распространенных, но "простых" ошибок (т.е. обычно дети допускают их единожды, понимают, в чем дело, и больше уже не ошибаются), следующая ? операцию инкремента пробуют применить к выражению. Например, написать что-то вроде а= (b+с) ++;. Более тонкий, хотя тоже не очень сложный вопрос ? префиксное и постфиксное использование этих операций. Если мы просто увеличиваем значение переменной на 1, то никакой разницы между записями а++; и ++а; нет. Другое

дело ? использование этих операций в выражениях. Рассмотрим следующие примеры:

а=3;b=2;

с=а++*b++;

В результате выполнения приведенной последовательности операторов переменная с получит значение б, а переменные а и b ? значения 4 и 3 соответственно.

 

Битовые операции >> (в Паскале ? shr), <<(shl), & (and), | (or), ^ (хоr), ~ (not) применяются к машинному (двоичному) представлению числа.. Арифметические операции над вещественными данными

+,-, *, /, ++, -- (последние две операции могут быть префиксными и постфиксными),

Операции отношения

Операции отношения (>,>=,<,<=,==, !=) также совсем простые, и особенностей, связанных с их использованием, практически нет. Следует обратить внимание, что результатом операции отношения является целое число (обычно 0, если результат операции "ложь", и 1, если "истина"; но гарантируется лишь то, что при "лжи" вырабатывается 0, а при "истине" ? значение, отличное от нуля).

vikidalka.ru - 2015-2018 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных