
- Главная
- Каталог
- Интернет технологии
- Computer Science
Computer Science
IT аудитория. Взрослая, платежеспособная. Более 20% подписчиков с Premium аккаунтами.
Статистика канала
@Contended).
• В Go/Rust: следите за выравниванием структур.
• В 2025 году это всё ещё актуально на серверах с 128+ ядрами.
Как найти: perf c2c, Intel VTune или просто подумайте, когда многопоточка не даёт speedup.
Вывод: профилируйте не только логику, но и железо.NOT (~) — Побитовое НЕ (инверсия)
• Правило: Инвертирует каждый бит (0 становится 1, 1 становится 0).
• Важно: Результат зависит от разрядности числа (количества бит).
• Пример (8-битное): ~5
5 = 00000101
~5 = 11111010 (что равно -6 в дополнительном коде для знаковых чисел)
• Применение: Часто используется в комбинации с другими операциями для создания масок.
5. Сдвиги влево (<<) и вправо (>>)
• x << n — Сдвигает биты числа x на n позиций влево. Освободившиеся справа биты заполняются нулями.
- Эффект: Умножение на 2^n. 5 << 1 = 10 (52), 5 << 3 = 40 (58).
- Применение: Быстрое умножение на степень двойки, установка битов.
• x >> n — Сдвигает биты числа x на n позиций вправо.
- Логический сдвиг (>>>): Освободившиеся слева биты всегда заполняются нулями. Для беззнаковых чисел.
- Арифметический сдвиг (>> для знаковых): Освободившиеся слева биты заполняются значением старшего (знакового) бита. Сохраняет знак для отрицательных чисел.
- Эффект: Целочисленное деление на 2^n (с округлением в меньшую сторону). 13 >> 1 = 6 (13/2=6.5 -> 6), -8 >> 2 = -2.
- Применение: Быстрое деление на степень двойки.
Практические примеры и трюки
• Проверка чётности: if ((x & 1) == 0) — чётное.
• Умножение/деление на 2: x << 1 (умножить на 2), x >> 1 (разделить на 2).
• Включение n-го бита: x |= (1 << n)
• Выключение n-го бита: x &= ~(1 << n)
• Переключение n-го бита (0→1, 1→0): x ^= (1 << n)
• Проверка, включён ли n-й бит: if (x & (1 << n))
• Извлечение младших k бит: x & ((1 << k) - 1)
• Округление до степени двойки (для положительных): 1 << (int)(log2(x) + 1)
• Быстрая проверка, является ли число степенью двойки: (x & (x - 1)) == 0 (и x > 0).
• Подсчёт количества единичных битов (вес Хэмминга): Есть эффективные алгоритмы с использованием битовых операций.AND (&) — Побитовое И
• Правило: Результат равен 1, только если оба соответствующих бита равны 1.
• Таблица истинности:
0 & 0 = 0,
0 & 1 = 0,
1 & 0 = 0,
1 & 1 = 1.
• Пример: 5 & 3
5 = 00000101
3 = 00000011
Результат: 00000001 (что равно 1)
• Применение:
- Маскирование: Выделение конкретных битов. Например, x & 1 проверяет чётность (младший бит).
- Очистка битов: x & ~(1 << n) сбрасывает бит в позиции n в 0.
2. OR (|) — Побитовое ИЛИ
• Правило: Результат равен 1, если хотя бы один из соответствующих битов равен 1.
• Таблица истинности:
0 | 0 = 0,
0 | 1 = 1,
1 | 0 = 1,
1 | 1 = 1.
• Пример: 5 | 3
5 = 00000101
3 = 00000011
• Результат: 00000111 (что равно 7)
• Применение:
- Установка битов: x | (1 << n) устанавливает бит в позиции n в 1.
3. XOR (^) — Побитовое исключающее ИЛИ
• Правило: Результат равен 1, если соответствующие биты разные.
• Таблица истинности:
0 ^ 0 = 0,
0 ^ 1 = 1,
1 ^ 0 = 1,
1 ^ 1 = 0.
• Пример: 5 ^ 3
5 = 00000101
3 = 00000011
• Результат: 00000110 (что равно 6)
• Ключевые свойства:
x ^ x = 0
x ^ 0 = x
x ^ y = y ^ x (коммутативность)
(x ^ y) ^ z = x ^ (y ^ z) (ассоциативность)
• Применение:
- Обмен значений без временной переменной: a ^= b; b ^= a; a ^= b;
- Шифрование: Базовый шифр, так как дважды применённый XOR с одним ключом возвращает исходное число.
- Поиск уникального элемента: В массиве, где все элементы парные, кроме одного, XOR всех чисел найдёт уникальный.SELECT name FROM users WHERE age > 18;
Это что нам нужно.
Но мы не указываем:
• как искать,
• по какому индексу,
• какой алгоритм сравнения использовать.
База данных сама выбирает оптимальный путь.
2) HTML — описание структуры, а не алгоритма
<p class="text">Привет!</p>
Мы описываем структуру документа, но не "рисуем" текст по пикселям.
3) Функциональное программирование (частный случай декларативного, Python)
result = sum([x * x for x in range(1, 6)])
Мы описываем что: сумму квадратов.
А не как: перебрать список, вести счётчики и т. д.
4) Конфигурационные языки (Terraform)
resource "aws_s3_bucket" "my_bucket" {
bucket = "example"
}
Мы описываем желаемое состояние: «должен быть bucket с именем example».
Terraform сам вычисляет шаги: создать, удалить, обновить.
Где применяется декларативное программирование:
• запросы к данным (SQL, GraphQL),
• инфраструктура (Terraform, Ansible),
• UI-разработка (React — декларативный),
• аналитические и научные вычисления,
• шаблонизация, конфигурация.parent(anna, ivan).
parent(sergey, ivan).
parent(ivan, dima).
Это означает:
Анна — родитель Ивана
Сергей — родитель Ивана
Иван — родитель Димы
Правило:
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).
Значение:
X — дед/бабушка Y, если X — родитель Z, а Z — родитель Y.
Запрос:
?- grandparent(X, dima).
Ответ Prolog:
X = anna ;
X = sergey ;
false.
Компьютер сам делает логический вывод. Нам не нужно описывать алгоритм — только знания.
Где применяется логическое программирование:
• экспертные системы,
• поиск решений в сложных логических задачах,
• искусственный интеллект (классические подходы),
• автоматические доказатели теорем,
• анализ и трансформация программ.Отзывы канала
Каталог Телеграм-каналов для нативных размещений
Computer Science — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 8.2K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 2.3, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 4195.8 ₽, а за 4 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий