Перейти к содержимому

Роль побитовых операций в низкоуровневом C • Live coding

Olga Pavlova

0:00 / 0:00

Роль побитовых операций в низкоуровневом C • Live coding

2 522 просмотра · 1 год назад
Olga Pavlova
10,7 тыс. подписчиков
2 522 просмотра · 1 год назад
Зачем нужны побитовые операции в C? При чём тут драйверы? Какая база и что можно из неё выжать? Самый-самый обзор для тех, кто до сих пор избегает масок и флагов, но всё же хочет их когда-нибудь полюбить. Таймлайн: 00:00 – Вступление. Походные условия и продолжение подготовки к драйверам 00:18 – Почему для драйверов нужно менять мышление: минимизация абстракций 01:46 – Краткая история: от логических вентилей до бинарной модели данных 03:32 – Бинарная логика: не аксиома, а инженерное соглашение 04:18 – Биты — не только арифметика, но и кодирование, передача, протоколы 06:08 – Модель взаимодействия ядра и внешних устройств: зачем нужны драйверы 08:21 – Роль микроконтроллера: преобразование аналоговых сигналов в биты 09:34 – Что такое протокол в железе, и как он связан с драйвером 11:04 – Кто реализует протокол: микроконтроллер vs драйвер ядра 12:05 – Драйвер = интерпретатор протокола. Не под устройство, а под протокол 13:46 – Зачем микроконтроллеру C и как он готовит данные для драйвера 14:29 – Почему всё на битах: исторические и практические причины 15:12 – Абстракции поверх бит: числа, символы, состояния 16:23 – Переход к практике: двоичная запись числа, побитовые операции 17:05 – Ввод числа, его двоичный вывод с помощью битовых сдвигов 22:01 – Ошибки при сдвигах и их устранение: AND с маской `0b00000001` 24:55 – Альтернативный способ получения конкретного бита с помощью маски 29:22 – Почему важно уметь манипулировать битами — практические примеры 30:12 – Использование флагов: битовые позиции как признаки состояния 33:03 – Примеры флагов: чётность, наличие цифры, симпатичность и т.д. 36:10 – Опасность перепутать порядок битов: little-endian, big-endian 37:14 – Операции с флагами: установка, проверка, сброс, инверсия 40:59 – Маски: зачем нужны и как применять 43:27 – Практика: игра с угадыванием числа по битовой маске 46:46 – Проверка соответствия числа заданной маске (битовая проверка) 49:01 – Почему битовые флаги — это живая, часто используемая практика 50:59 – Что мешает новичкам: отсутствие пояснений в чужом коде 52:02 – Альтернатива: структуры с битовыми полями в языке C 53:01 – Размерность битовых полей: экономия памяти по битам 54:04 – Применение в драйверах и микроконтроллерах: значимость размеров 54:44 – Заметка о выравнивании битовых структур в памяти 55:17 – Финальная мысль: побитовые операции — не архаика, а необходимость 56:21 – Что дальше: возможно продолжение про битовые поля и union 56:48 – Закрытие. Благодарности и прощание Конспект: https://github.com/olgapavlova/lectur...