Роль побитовых операций в низкоуровневом 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...