🗊 Презентация Операции в языке С (продолжение)

Нажмите для полного просмотра!
Операции в языке С (продолжение), слайд №1 Операции в языке С (продолжение), слайд №2 Операции в языке С (продолжение), слайд №3 Операции в языке С (продолжение), слайд №4 Операции в языке С (продолжение), слайд №5 Операции в языке С (продолжение), слайд №6 Операции в языке С (продолжение), слайд №7 Операции в языке С (продолжение), слайд №8 Операции в языке С (продолжение), слайд №9 Операции в языке С (продолжение), слайд №10 Операции в языке С (продолжение), слайд №11 Операции в языке С (продолжение), слайд №12 Операции в языке С (продолжение), слайд №13 Операции в языке С (продолжение), слайд №14 Операции в языке С (продолжение), слайд №15 Операции в языке С (продолжение), слайд №16 Операции в языке С (продолжение), слайд №17 Операции в языке С (продолжение), слайд №18 Операции в языке С (продолжение), слайд №19 Операции в языке С (продолжение), слайд №20 Операции в языке С (продолжение), слайд №21 Операции в языке С (продолжение), слайд №22 Операции в языке С (продолжение), слайд №23 Операции в языке С (продолжение), слайд №24 Операции в языке С (продолжение), слайд №25 Операции в языке С (продолжение), слайд №26 Операции в языке С (продолжение), слайд №27 Операции в языке С (продолжение), слайд №28 Операции в языке С (продолжение), слайд №29 Операции в языке С (продолжение), слайд №30 Операции в языке С (продолжение), слайд №31 Операции в языке С (продолжение), слайд №32 Операции в языке С (продолжение), слайд №33 Операции в языке С (продолжение), слайд №34 Операции в языке С (продолжение), слайд №35 Операции в языке С (продолжение), слайд №36 Операции в языке С (продолжение), слайд №37 Операции в языке С (продолжение), слайд №38

Содержание

Вы можете ознакомиться и скачать презентацию на тему Операции в языке С (продолжение). Доклад-сообщение содержит 38 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Есть ли у вас вопросы?
Описание слайда:
Есть ли у вас вопросы?

Слайд 2


Краткое содержание предыдущей серии Как в ассемблере происходит сравнение? Как используется результат сравнения? Что такое «условное исполнение»? Как...
Описание слайда:
Краткое содержание предыдущей серии Как в ассемблере происходит сравнение? Как используется результат сравнения? Что такое «условное исполнение»? Как в ассемблере осуществляется ветвление?

Слайд 3


Краткое содержание этой серии О магии Операции в языке С (продолжение) О-нотация
Описание слайда:
Краткое содержание этой серии О магии Операции в языке С (продолжение) О-нотация

Слайд 4


Что такое «магия»? В широком смысле – это «что-то непонятное». Строгой классификации не существует. Условно: белая магия – результат действия...
Описание слайда:
Что такое «магия»? В широком смысле – это «что-то непонятное». Строгой классификации не существует. Условно: белая магия – результат действия полностью понятен, но не понятен механизм черная магия – результат действия понятен не полностью или вообще ничего непонятно

Слайд 5


Пример «белой магии» Функция sin. Что возвращает sin? Синус угла. А как она его вычисляет? Правильно. Если вас устраивает результат «белой магии»...
Описание слайда:
Пример «белой магии» Функция sin. Что возвращает sin? Синус угла. А как она его вычисляет? Правильно. Если вас устраивает результат «белой магии» (точность, скорость и т.д.), то понимать ее механизм не обязательно.

Слайд 6


Пример «черной магии»
Описание слайда:
Пример «черной магии»

Слайд 7


Причины «магии» «Индуизм» Ручная оптимизация Магические числа Обфускация (намеренное ухудшение читаемости кода) Недокументированные и малоизвестные...
Описание слайда:
Причины «магии» «Индуизм» Ручная оптимизация Магические числа Обфускация (намеренное ухудшение читаемости кода) Недокументированные и малоизвестные особенности чего-либо Соревнования волшебников

Слайд 8


«Индуизм» («индусский код»)
Описание слайда:
«Индуизм» («индусский код»)

Слайд 9


«Магические числа» Это численные константы, смысл которых не ясен.
Описание слайда:
«Магические числа» Это численные константы, смысл которых не ясен.

Слайд 10


Как сделать черную магию белой? // Быстрый вариант функции 1/sqrt. // Быстр при аппаратной поддержке плавающей арифметики float fastInverseSqrt(...
Описание слайда:
Как сделать черную магию белой? // Быстрый вариант функции 1/sqrt. // Быстр при аппаратной поддержке плавающей арифметики float fastInverseSqrt( float number ) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; i = 0x5f3759df - ( i >> 1 ); y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); return y; }

Слайд 11


Что такое интерфейс? Интерфейс – набор входов и выходов черного ящика; их свойства, возможные диапазоны и т.д. В зависимости от области интерфейс...
Описание слайда:
Что такое интерфейс? Интерфейс – набор входов и выходов черного ящика; их свойства, возможные диапазоны и т.д. В зависимости от области интерфейс может быть разным.

Слайд 12


Интерфейсы
Описание слайда:
Интерфейсы

Слайд 13


Хороший интерфейс делает черную магию белой! Хороший интерфейс делает черную магию белой!
Описание слайда:
Хороший интерфейс делает черную магию белой! Хороший интерфейс делает черную магию белой!

Слайд 14


Операции в языке С (продолжение) Логические Битовые
Описание слайда:
Операции в языке С (продолжение) Логические Битовые

Слайд 15


Логические операции ! – логическое отрицание && - логическое И || - логическое ИЛИ Т.к. тип bool был введен только в С99, все логические операции...
Описание слайда:
Логические операции ! – логическое отрицание && - логическое И || - логическое ИЛИ Т.к. тип bool был введен только в С99, все логические операции используют тип int. Поэтому для них 0 – это ложь, а любое другое число – истина.

Слайд 16


Логическое отрицание - !
Описание слайда:
Логическое отрицание - !

Слайд 17


Логическое ИЛИ - || Результат выражения А || B равен нулю, только если оба аргумента равны нулю, во всех остальных случаях результат равен единице.
Описание слайда:
Логическое ИЛИ - || Результат выражения А || B равен нулю, только если оба аргумента равны нулю, во всех остальных случаях результат равен единице.

Слайд 18


Логическое И - && Результат выражения А && B равен единице, только если оба аргумента не равны нулю, во всех остальных случаях результат равен нулю.
Описание слайда:
Логическое И - && Результат выражения А && B равен единице, только если оба аргумента не равны нулю, во всех остальных случаях результат равен нулю.

Слайд 19


Логические операции в ассемблере Их нет! Есть только битовые. Все операции, которые называются «logical» в тех. описании, являются битовыми....
Описание слайда:
Логические операции в ассемблере Их нет! Есть только битовые. Все операции, которые называются «logical» в тех. описании, являются битовыми. Логические операции языка С превращаются в несколько ассемблерных команд.

Слайд 20


Битовые операции языка С ~ - битовая инверсия | - битовое ИЛИ & - битовое И ^ - битовое исключающее или (XOR) >> - сдвиг вправо
Описание слайда:
Битовые операции языка С ~ - битовая инверсия | - битовое ИЛИ & - битовое И ^ - битовое исключающее или (XOR) >> - сдвиг вправо

Слайд 21


Битовая инверсия - ~ При битовой инверсии каждый бит двоичного представления аргумента меняется на противоположный (инвертируется). Размер (в байтах)...
Описание слайда:
Битовая инверсия - ~ При битовой инверсии каждый бит двоичного представления аргумента меняется на противоположный (инвертируется). Размер (в байтах) результата операции равен размеру аргумента, поэтому результат зависит от типа! Примеры: uint8_t A = 5; // A = 0000 01012 = 510 A = ~A; // A = 1111 10102 = 25010 uint16_t B = 5; // B = 0000 0000 0000 01012 = 510 B = ~B; // B = 1111 1111 1111 10102 = 6553010

Слайд 22


Битовое ИЛИ - | Результатом битового ИЛИ будет число, каждый бит которого является результатом булевой операции ИЛИ между соответствующими битами...
Описание слайда:
Битовое ИЛИ - | Результатом битового ИЛИ будет число, каждый бит которого является результатом булевой операции ИЛИ между соответствующими битами аргументов. Коротко: если бит равен 1 в любом из аргументов – он равен 1 в результате. A |= B эквивалентно A = A | B. Битовое ИЛИ удобно использовать для установки отдельных битов в единицу: a |= 1;

Слайд 23


Битовое И - & Результатом битового И будет число, каждый бит которого является результатом булевой операции И между соответствующими битами...
Описание слайда:
Битовое И - & Результатом битового И будет число, каждый бит которого является результатом булевой операции И между соответствующими битами аргументов. Коротко: если бит равен 0 в любом из аргументов – он равен 0 в результате. A &= B эквивалентно A = A & B. Битовое И удобно использовать для обнуления отдельных битов: a &= ~1;

Слайд 24


Битовое исключающее ИЛИ (XOR) - ^ Если значение одного бита у аргументов разное – то результат равен 1. A ^= B эквивалентно A = A ^ B. Битовое...
Описание слайда:
Битовое исключающее ИЛИ (XOR) - ^ Если значение одного бита у аргументов разное – то результат равен 1. A ^= B эквивалентно A = A ^ B. Битовое исключающее ИЛИ удобно использовать для инверсии отдельных битов: a ^= 1;

Слайд 25


Операции в языке С (продолжение), слайд №25
Описание слайда:

Слайд 26


Сдвиги Сдвиги бывают: «просто» сдвиги – они же «логические» (без учета знака) арифметические (с учетом знака) циклические Какие же сдвиги в языке С?...
Описание слайда:
Сдвиги Сдвиги бывают: «просто» сдвиги – они же «логические» (без учета знака) арифметические (с учетом знака) циклические Какие же сдвиги в языке С? Не циклические.

Слайд 27


Сдвиг влево -
Описание слайда:
Сдвиг влево -

Слайд 28


Сдвиг вправо - >> A >> B эквивалентно a >>= 4 эквивалентно а = а >> 4 Сюрпризы: Сдвиг вправо отрицательных чисел – implementation defined Сдвиг на...
Описание слайда:
Сдвиг вправо - >> A >> B эквивалентно a >>= 4 эквивалентно а = а >> 4 Сюрпризы: Сдвиг вправо отрицательных чисел – implementation defined Сдвиг на отрицательное число – undefined behavior Поэтому сдвиг вправо вроде бы арифметический, но вроде бы и нет.

Слайд 29


Примеры сюрпризов int a = -1 > 4; - implementation defined
Описание слайда:
Примеры сюрпризов int a = -1 > 4; - implementation defined

Слайд 30


Сюрприз в сюрпризе Описания сдвигов отрицательных чисел появились в стандарте слишком поздно. Программисты успели написать достаточно кода, где такие...
Описание слайда:
Сюрприз в сюрпризе Описания сдвигов отрицательных чисел появились в стандарте слишком поздно. Программисты успели написать достаточно кода, где такие сдвиги используются! Зачем? Для получения битовых масок с заданным числом нулей удобно сдвигать -1 (если он в доп. коде) Но так делать не надо! Сдвигайте лучше ~0u

Слайд 31


Рассмотрим два алгоритма сортировки
Описание слайда:
Рассмотрим два алгоритма сортировки

Слайд 32


Какой из них быстрее? А если взять другой массив? А если взять другой компьютер? А если массив будет гораздо, гораздо больше?
Описание слайда:
Какой из них быстрее? А если взять другой массив? А если взять другой компьютер? А если массив будет гораздо, гораздо больше?

Слайд 33


Как узнать, какой алгоритм быстрее? Написать программу и запустить? но ее можно написать с ошибками на разных компьютерах скорость будет разной на...
Описание слайда:
Как узнать, какой алгоритм быстрее? Написать программу и запустить? но ее можно написать с ошибками на разных компьютерах скорость будет разной на разных исходных данных скорость будет разной на разных запусках скорость может быть разной!

Слайд 34


Теоретический анализ? Какая самая долгая операция в алгоритме? Какая операция выполняется наибольшее количество раз? От чего зависит это количество?
Описание слайда:
Теоретический анализ? Какая самая долгая операция в алгоритме? Какая операция выполняется наибольшее количество раз? От чего зависит это количество?

Слайд 35


Теоретический анализ?
Описание слайда:
Теоретический анализ?

Слайд 36


Теоретический анализ?
Описание слайда:
Теоретический анализ?

Слайд 37


Теоретический анализ? Абстрагироваться от «железа» Абстрагироваться от входных данных Получается т.н. «О-нотация» (Big-Oh notation): Время работы...
Описание слайда:
Теоретический анализ? Абстрагироваться от «железа» Абстрагироваться от входных данных Получается т.н. «О-нотация» (Big-Oh notation): Время работы алгоритма выражается как функция от размера входных данных N Игнорируются константные коэффициенты Остается только старший порядок Очень грубое объяснение! Подробнее см. «алгоритмическая сложность», «теория алгоритмов»

Слайд 38


А можно сортировать быстрее? Если ничего не известно о входных данных Быстрая сортировка – в среднем Сортировка слиянием - Если известно Поразрядная...
Описание слайда:
А можно сортировать быстрее? Если ничего не известно о входных данных Быстрая сортировка – в среднем Сортировка слиянием - Если известно Поразрядная сортировка () ) Сортировка подсчетом ())



Похожие презентации
Mypresentation.ru
Загрузить презентацию