SlideShare a Scribd company logo
1 of 11
ANSI C
Language
Introduction
Lection 6
Содержание
• Приоритет операций
• Тернарный оператор
• Логические и битовые операции
• Битовая арифметика
23.05.2019 0:16 Introduction 2
Приоритет операций
При рассмотрении выражения,
операторы, имеющие более высокий
приоритет, будут вычислены раньше
операторов с низким приоритетом.
3
Приоритет операций
4
Приоритет операций
Выражение
• а = b & 0xFF + 5
вычисляется как
• а = b & (0xFF + 5),
А выражение
• а +с >> 1
вычисляется как
• (а + с) >> 1
5
Тернарный оператор
синтаксис:
логическое выражение ? выражение 1 : выражение 2
1) Вычисляется логическое выражение.
2) Если логическое выражение истинно, то вычисляется
значение выражение 1, в противном случае — значение
выражение 2.
3) Вычисленное значение возвращается.
пример:
min = (a < b) ? a : b;
6
Тернарный оператор
7
int main()
{
unsigned char a, b, min, max;
a = 100; b = 200;
min = (a < b) ? a : b;
max = (a > b) ? a : b;
printf("Result: min = %d, max = %d", min, max);
return 0;
}
Result: min = 100, max = 200
Логические и битовые операции
8
Result: ????
int main()
{
unsigned char a, b, r1, r2, r3, r4;
a = 0xF0; b = 0x0F;
r1 = a & b;
r2 = a && b;
r3 = a | b;
r4 = a || b;
printf("Result: r1 = %x, r2 = %xn", r1, r2);
printf("Result: r3 = %x, r4 = %x", r3, r4);
return 0;
}
Логические и битовые операции
9
Result: r1 = 0, r2 = 1
Result: r3 = ff, r4 = 1
int main()
{
unsigned char a, b, r1, r2, r3, r4;
a = 0xF0; b = 0x0F;
r1 = a & b;
r2 = a && b;
r3 = a | b;
r4 = a || b;
printf("Result: r1 = %x, r2 = %xn", r1, r2);
printf("Result: r3 = %x, r4 = %x", r3, r4);
return 0;
}
Битовая арифметика
10
Result: ????
int main()
{
unsigned char a, r1, r2;
a = 41;
r1 = a << 2;
r2 = a >> 2;
printf("Result: r1 = %dn", r1);
printf("Result: r2 = %d", r2);
return 0;
}
Битовая арифметика
11
Result: r1 = 164
Result: r2 = 10
int main()
{
unsigned char a, r1, r2;
a = 41; // 0b 0010 1001 (41)
r1 = a << 2; // 0b 1010 0100 (164 = 41 * 4)
r2 = a >> 2; // 0b 0000 1010 (10 = 41 / 4)
printf("Result: r1 = %dn", r1);
printf("Result: r2 = %d", r2);
return 0;
}

More Related Content

What's hot

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

What's hot (20)

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

Similar to C language lect_07_introduction

JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JSFestUA
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовAndrey Dolinin
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДIT_1315
 
оператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и выводаоператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и выводаliza2209
 
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"Ciklum Ukraine
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняAlexander Granin
 
Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"Yandex
 
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Ontico
 

Similar to C language lect_07_introduction (14)

Step cpp022
Step cpp022Step cpp022
Step cpp022
 
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Java Memory Model
Java Memory ModelJava Memory Model
Java Memory Model
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмов
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОД
 
8 3-4
8 3-48 3-4
8 3-4
 
оператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и выводаоператор присваивания и процедуры ввода и вывода
оператор присваивания и процедуры ввода и вывода
 
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
CiklumCPPSat: Ivan Romanenko "Experience of work with Boost Spirit"
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодня
 
Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"Александр Сомов "C++: препроцессор, компилятор, компоновщик"
Александр Сомов "C++: препроцессор, компилятор, компоновщик"
 
ФИЛП
ФИЛПФИЛП
ФИЛП
 
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
Тонкости работы трассирующего JIT-компилятора / Антон Солдатов (IPONWEB)
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task NetworkingRoman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernetRoman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flashRoman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2CRoman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uartRoman 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_sensorRoman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwmRoman 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_buttonsRoman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_worldRoman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisitesRoman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advancedRoman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advancedRoman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advancedRoman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окруженияRoman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advancedRoman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basicsRoman 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_07_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