Курс лекций - Микропроцессоры

Выражения в операторах языка программирования C-51 - часть 2


Использование подвыражений позволяет сократить количество операторов в программе, а значит и объем программы (но не объём ), но затрудняет отладку этой программы.

В языке программирования C-51 используются арифметические операции, результат которых зависит от :

  1. + суммирование
  2. - вычитание
  3. * умножение
  4. / деление
  5. % вычисление остатка от целочисленного деления

Примеры выражений, использующие арифметические операции:

А+В А+В-С A*T+F/D A*(B+C)-(D-E)/F

В языке программирования C-51 также определено несколько одноместных арифметических операций:

  1. '-' изменение знака операнда на противоположное значение
  2. '+' знак плюс не влияет на значение операнда
  3. ++ увеличение значения операнда на единицу
  4. -- уменьшение значения операнда на единицу

Для одноместной операции требуется один операнд, которому она предшествует. Например:

P3 = -5; //Присвоить порту P3 значение числа -5 a = -b; //Присвоить переменной a отрицательное значение переменной b с=++a + 2; //Увеличить значение переменной a на 1 и прибавить 2 с=a++ + 2; //Прибавить к переменной a 2, присвоить это значение переменной c и только после этого увеличить значение переменной a на 1.

Над операндами можно осуществлять логические операции:

  1. '&&' логическое "и"
  2. '&' побитовое логическое "и"
  3. '' логическое "или"
  4. '|' побитовое логическое "или"
  5. '^' "исключающее или" (суммирование по модулю два)

Здесь следует объяснить различие между логическими и побитовыми логическими операциями. Дело в том, что в стандартном языке ANSI C не существует битовых переменных. Для хранения битовых значений истина '1' и ложь '0' используются стандартные целые типы переменных. В простейшем случае это байт. При этом все значения переменной, отличающиеся от 0 считаются 1. Например, пусть в переменной a хранится число 5, а в переменной b - число 6. Тогда:

a|b=7 //00000101 or 00000110 = 00000111 ab=1 //(00000101)->1 (00000110)->1; (1 or 1= 1), Результат равен 00000001 a&b=4 //00000101 and 00000110 = 00000100 a&&b=1 //(00000101)->1 (00000110)->1; (1 and 1= 1), Результат равен 00000001 a^b=3 //00000101 xor 00000110 = 00000011

В языке программирования C-51 также определено несколько одноместных логических операций:




- Начало -  - Назад -  - Вперед -