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

What's hot

8 3-2
8 3-28 3-2
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производной
Dmitry Bulgakov
 
задания на выполнение фрагментов программ
задания на выполнение фрагментов программзадания на выполнение фрагментов программ
задания на выполнение фрагментов программЕлена Ключева
 
задания на выполнение фрагментов программ
задания на выполнение фрагментов программзадания на выполнение фрагментов программ
задания на выполнение фрагментов программЕлена Ключева
 
3.1 Структуры
3.1 Структуры3.1 Структуры
3.1 Структуры
DEVTYPE
 
Operators
OperatorsOperators
Operators
ssuserf59b92
 
2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод
DEVTYPE
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3Zhanna Kazakova
 
Issledov 10
Issledov 10 Issledov 10
Issledov 10
Katya1310
 
оператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и выводаоператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и вывода
liza2209
 
использование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачиспользование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачweidar
 
метод наименьших квадратов
метод наименьших квадратовметод наименьших квадратов
метод наименьших квадратовЕлена Ключева
 
циклические алгоритмы
циклические алгоритмыциклические алгоритмы
циклические алгоритмыstonohov
 

What's hot (20)

8 3-2
8 3-28 3-2
8 3-2
 
Matlab: Вычисление производной
Matlab: Вычисление производнойMatlab: Вычисление производной
Matlab: Вычисление производной
 
лекция 1
лекция 1лекция 1
лекция 1
 
лекция 2
лекция 2лекция 2
лекция 2
 
задания на выполнение фрагментов программ
задания на выполнение фрагментов программзадания на выполнение фрагментов программ
задания на выполнение фрагментов программ
 
задания на выполнение фрагментов программ
задания на выполнение фрагментов программзадания на выполнение фрагментов программ
задания на выполнение фрагментов программ
 
3.1 Структуры
3.1 Структуры3.1 Структуры
3.1 Структуры
 
Operators
OperatorsOperators
Operators
 
2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод2.8 Строки и ввод-вывод
2.8 Строки и ввод-вывод
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_alNakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
Nakhodzhenie ploschadi s_ispolzovaniem_lineynykh_al
 
лекция 3
лекция 3лекция 3
лекция 3
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3
 
Issledov 10
Issledov 10 Issledov 10
Issledov 10
 
оператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и выводаоператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и вывода
 
использование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задачиспользование линейных алгоритмов для решения задач
использование линейных алгоритмов для решения задач
 
метод наименьших квадратов
метод наименьших квадратовметод наименьших квадратов
метод наименьших квадратов
 
Lektsia 9
Lektsia 9Lektsia 9
Lektsia 9
 
циклические алгоритмы
циклические алгоритмыциклические алгоритмы
циклические алгоритмы
 

Similar to C language lect_06_introduction

Step cpp022
Step cpp022Step cpp022
Step cpp022
Evgenij Laktionov
 
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
corehard_by
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДIT_1315
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторов
DEVTYPE
 
functional patterns - dotnetconf'11
functional patterns - dotnetconf'11functional patterns - dotnetconf'11
functional patterns - dotnetconf'11
0xffAA
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузера
Platonov Sergey
 
PetrKerzum (Yandex) @ CodeCamp2011
PetrKerzum (Yandex) @ CodeCamp2011PetrKerzum (Yandex) @ CodeCamp2011
PetrKerzum (Yandex) @ CodeCamp2011CodeCamp
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)isva69
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)isva69
 

Similar to C language lect_06_introduction (9)

Step cpp022
Step cpp022Step cpp022
Step cpp022
 
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
C++ трюки из Такси. Антон Полухин ➠ CoreHard Autumn 2019
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОД
 
5.1 Перегрузка операторов
5.1 Перегрузка операторов5.1 Перегрузка операторов
5.1 Перегрузка операторов
 
functional patterns - dotnetconf'11
functional patterns - dotnetconf'11functional patterns - dotnetconf'11
functional patterns - dotnetconf'11
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузера
 
PetrKerzum (Yandex) @ CodeCamp2011
PetrKerzum (Yandex) @ CodeCamp2011PetrKerzum (Yandex) @ CodeCamp2011
PetrKerzum (Yandex) @ CodeCamp2011
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
Roman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
Roman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
Roman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
Roman Brovko
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
Roman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
Roman Brovko
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
Roman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
Roman Brovko
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
Roman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
Roman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
Roman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
Roman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
Roman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
Roman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
Roman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
Roman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
Roman Brovko
 

More from Roman Brovko (20)

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 

C language lect_06_introduction

Editor's Notes

  1. 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