SlideShare a Scribd company logo
ANSI C
Language
Introduction
Lection 6
Содержание
• Арифметические операторы
• Операторы сравнения
• Логические операторы
• Побитовые операторы
• Составные операторы
23.05.2019 0:15 Introduction 2
Арифметические операторы
Основные бинарные операции, расположенные в порядке уменьшения приоритета:
● * — умножение;
● / — деление;
● + — сложение;
● - — вычитание;
● % — остаток от целочисленного деления.
Основные унарные операции:
● ++ — инкрементирование (увеличение на 1);
● –– — декрементирование (уменьшение на 1);
● - — изменение знака.
3
Арифметические операторы
Бинарные арифметические операции могут быть объединены с операцией
присваивания:
● объект *= выражение; // объект = объект * выражение
● объект /= выражение; // объект = объект / выражение
● объект += выражение; // объект = объект + выражение
● объект -= выражение; // объект = объект — выражение
● объект %= выражение; // объект = объект % выражение
4
Арифметические операторы
5
int main()
{
unsigned int a,b,c;
a = 100;
b = 200;
c = a + b;
printf("Result: C = %d", c);
return 0;
}
Result: C = 300
Арифметические операторы
6
Result: ???
int main()
{
unsigned int a,b;
a = 55 / 2;
b = 35 % 3;
printf("Result: A = %d, B = %d", a, b);
return 0;
}
Арифметические операторы
7
Result: A = 27, B = 2
int main()
{
unsigned int a,b;
a = 55 / 2;
b = 35 % 3;
printf("Result: A = %d, B = %d", a, b);
return 0;
}
Арифметические операторы
8
Result: ????
int main()
{
unsigned short a;
a = 2;
a--;
a--;
a--;
printf("Result: A = %d", a);
return 0;
}
Арифметические операторы
9
Result: A = 65535
int main()
{
unsigned short a;
a = 2;
a--;
a--;
a--;
printf("Result: A = %d", a);
return 0;
}
Операторы сравнения
Большинство операторов сравнения применимы к числовым значениям. Всё это бинарные операторы,
имеющие два числовых аргумента, но возвращающие логическое значение.
● > — оператор «больше».
● >= — оператор «больше или равно».
● < — оператор «меньше».
● <= — оператор «меньше или равно».
● != — оператор «не равно».
● == — оператор эквивалентности (равенства).
Последние два оператора могут применяться не только для числовых значений, но и, например, для
логических.
10
Операторы сравнения
11
Result: ????
int main()
{
unsigned short a,b,c;
a = 2; b = 5;
if (a > b)
c = 10;
else
c = 20;
printf("Result: C = %d", c);
return 0;
}
Операторы сравнения
12
Result: C = 20
int main()
{
unsigned short a,b,c;
a = 2; b = 5;
if (a > b)
c = 10;
else
c = 20;
printf("Result: C = %d", c);
return 0;
}
Операторы сравнения
13
Result: ????
int main()
{
unsigned short a,b,c;
a = 50; b = 20;
if (a = b)
c = a - b;
else
c = a + b;
printf("Result: C = %d", c);
return 0;
}
Операторы сравнения
14
Result: C = 0
int main()
{
unsigned short a,b,c;
a = 50; b = 20;
if (a = b)
c = a - b;
else
c = a + b;
printf("Result: C = %d", c);
return 0;
}
Логические операторы
Существует несколько бинарных логических операторов и один унарный. В качестве аргументов для всех этих
операторов выступают логические литералы (константы), логические переменные и выражения, имеющие
логическое значение.
● ! — «отрицание», унарный оператор, меняет значение на противоположное
● && — логическое «и» («конъюнкция», «пересечение»), бинарная операция, возвращает истинное значение
тогда и только тогда, когда оба операнда истины.
● || — логическое «или» («дизъюнкция», «объединение»), бинарная операция, возвращает истинное значение,
когда хотя бы один из операндов истинный.
У логических операторов следующий приоритет: отрицание, конъюнкция, дизъюнкция.
15
Логические операторы
16
Логические операторы
17
Result: ????
int main()
{
unsigned short a,b,c;
a = 50; b = 20;
if ((a > b) && (b != 20))
c = a - b;
else
c = a + b;
printf("Result: C = %d", c);
return 0;
}
Логические операторы
18
Result: C = 70
int main()
{
unsigned short a,b,c;
a = 50; b = 20;
if ((a > b) && (b != 20))
c = a - b;
else
c = a + b;
printf("Result: C = %d", c);
return 0;
}
Логические операторы
19
Result: ????
int main()
{
unsigned short c, d;
c = 100; d = 0;
c = !(!c);
d = !(!d);
printf("Result: C = %d, D = %d", c, d);
return 0;
}
Логические операторы
20
Result: C = 1, D = 0
int main()
{
unsigned short c, d;
c = 100; d = 0;
c = !(!c);
d = !(!d);
printf("Result: C = %d, D = %d", c, d);
return 0;
}
Побитовые операторы
Побитовые операции можно применять только к целочисленным типам.
Виды побитовых операций:
● & ( или AND ),
● | ( или OR ),
● ^ ( или XOR ),
● ~ ( или NOT ),
● << - сдвиг влево
● >> - сдвиг вправо
21
Побитовые операторы
22
Операторы логического сдвига
23
Побитовые операторы
24
Result: Z = 3, X = 131
int main()
{
unsigned char z, x;
z = 0x0F; // 0b 0000 1111 (15)
z = z >> 2; // 0b 0000 0011 (3)
x = z | 0x80; // 0b 1000 0011 (131)
printf("Result: Z = %d, X = %d", z, x);
return 0;
}
Составной оператор
25
Составной оператор
26
int main()
{
unsigned short a, b, c, d;
a = 20; b = 30; c = 100; d = 0;
if (a == 3)
c = 20;
else
{
c = 40;
if (d < 10)
{
d *= 2;
}
}
{
unsigned int e;
a = b = c = d = 0;
}
return 0;
}

More Related Content

PPTX
C language lect_07_introduction
PPT
Огранизация ввода и вывода данных
PDF
PPT
PDF
5.4 Ключевые слова static и inline
PPT
PPT
Программирование циклических алгоритмов
PPTX
тема 2.операторы.линейный алгоритм
C language lect_07_introduction
Огранизация ввода и вывода данных
5.4 Ключевые слова static и inline
Программирование циклических алгоритмов
тема 2.операторы.линейный алгоритм

What's hot (20)

PPT
DOCX
Matlab: Вычисление производной
PPT
лекция 1
PPT
лекция 2
PDF
задания на выполнение фрагментов программ
DOCX
задания на выполнение фрагментов программ
PDF
3.1 Структуры
ODP
Operators
PDF
2.8 Строки и ввод-вывод
PPT
презентации продолжение банкета
PPT
основы программирования на языке C
PPTX
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
PPT
лекция 3
PPT
лабораторная работа №3
PPT
Issledov 10
PPTX
оператор присваивания и процедуры ввода и вывода
PPTX
использование линейных алгоритмов для решения задач
PDF
метод наименьших квадратов
PPTX
циклические алгоритмы
Matlab: Вычисление производной
лекция 1
лекция 2
задания на выполнение фрагментов программ
задания на выполнение фрагментов программ
3.1 Структуры
Operators
2.8 Строки и ввод-вывод
презентации продолжение банкета
основы программирования на языке C
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
лекция 3
лабораторная работа №3
Issledov 10
оператор присваивания и процедуры ввода и вывода
использование линейных алгоритмов для решения задач
метод наименьших квадратов
циклические алгоритмы
Ad

Similar to C language lect_06_introduction (20)

PDF
Step cpp022
PDF
Типы данных (продолжение). Операторы. Стандартные библиотеки
PDF
апкс 2011 03_verilog
PDF
C++ Базовый. Занятие 02.
PPTX
C language lect_05_introduction
PDF
Преобразования типов. Операторы ветвления
PDF
PPT
Java. Cистемы счислния, битовые операции
PPTX
1.4 operators
PPTX
1 вводное занятие
PPTX
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
DOC
лекция 3. программирование циклов
PDF
5.1 Перегрузка операторов
PPT
PDF
Глава 3: примитивные типы и операции с ними в Java
PDF
Основы программирования на C++
PPT
Rgsu04
PPT
Rgsu04
Step cpp022
Типы данных (продолжение). Операторы. Стандартные библиотеки
апкс 2011 03_verilog
C++ Базовый. Занятие 02.
C language lect_05_introduction
Преобразования типов. Операторы ветвления
Java. Cистемы счислния, битовые операции
1.4 operators
1 вводное занятие
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
лекция 3. программирование циклов
5.1 Перегрузка операторов
Глава 3: примитивные типы и операции с ними в Java
Основы программирования на C++
Rgsu04
Rgsu04
Ad

More from Roman Brovko (20)

PDF
Individual task Networking
PPTX
Networking essentials lect3
PPTX
Gl embedded starterkit_ethernet
PPTX
Networking essentials lect2
PPTX
Networking essentials lect1
PPTX
Bare metal training_07_spi_flash
PPTX
Bare metal training_06_I2C
PPTX
Glesk worshop
PPTX
Bare metal training_05_uart
PPTX
Bare metal training_04_adc_temp_sensor
PPTX
Bare metal training_03_timers_pwm
PPTX
Bare metal training_02_le_ds_and_buttons
PPTX
Bare metal training_01_hello_world
PPTX
Bare metal training_00_prerequisites
PPTX
C language lect_23_advanced
PPTX
C language lect_22_advanced
PPTX
C language lect_21_advanced
PPTX
подготовка рабочего окружения
PPTX
C language lect_20_advanced
PPTX
C language lect_19_basics
Individual task Networking
Networking essentials lect3
Gl embedded starterkit_ethernet
Networking essentials lect2
Networking essentials lect1
Bare metal training_07_spi_flash
Bare metal training_06_I2C
Glesk worshop
Bare metal training_05_uart
Bare metal training_04_adc_temp_sensor
Bare metal training_03_timers_pwm
Bare metal training_02_le_ds_and_buttons
Bare metal training_01_hello_world
Bare metal training_00_prerequisites
C language lect_23_advanced
C language lect_22_advanced
C language lect_21_advanced
подготовка рабочего окружения
C language lect_20_advanced
C language lect_19_basics

C language lect_06_introduction

Editor's Notes

  • #3: https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B_%D0%B2_C_%D0%B8_C%2B%2B