Другие языки программирования и технологии

Побитовые операции - самые "легкие" для компьютера?

Необязательно. Арифметика (сложение, вычитание) без переноса имеет ту же стоимость в микрооперациях и latency. Типовая стоимость - один исполняющий юнит занимается на 1 такт. Даже можно сказать, сложение в среднем дешевле побитовых операций, потому что побитовые операции всегда идут на арифметический юнит, а сложения могут исполняться как на арифметическом, так и на адресном.

А побитовый сдвиг обычно тяжелее and, or, xor и арифметики: либо он делается за большее количество тактов, либо хуже параллелится (например, некоторые CPU могут исполнять за такт 2 или 4 сложения, но только один сдвиг). Поэтому, например, умножение на 2 лучше делать как add регистра с самим собой, а не как shl на 1. Но при этом шифты почти везде дешевле умножений, а делений надо вообще избегать любой ценой (например, деление на константу заменяется умножением двойной точности на обратную константу с отбрасыванием младших бит результата; если нужно разделить на произведение, то сначала собираем знаменатель, а потом один раз на него делим, а не делим на каждый его множитель отдельно, и т.д.).

Вообще, богатый источник информации - это оптимизирующие компиляторы. Берём, например, gcc с максимальными оптимизациями, и смотрим, какой машинный код он генерирует на какие конструкции. Бывает очень познавательно.
Жумабек Тойчуев
Жумабек Тойчуев
54 053
Лучший ответ
Процессор целиком построен на элементарных ячейках, выполняющих битовые операции. И любые команды реализуются в процессоре комбинациями битовых операций. Так что с точки зрения схемотехники и тепловыделения битовые операции действительно самые "лёгкие".

Но целочисленное арифметическое сложение или вычитание можно произвести столь же быстро, как и логическое побитовое сложение - просто аппаратная схема, реализующая арифметические сложение / вычитание будет существенно сложнее.

А вот арифметические умножение / деление - это уже заметно медленнее.
Женис Исмаилов
Женис Исмаилов
71 630
Валера Ли Андрей,
https://otvet.mail.ru/question/234411253

тут ни чего не подскажите?
Да, побитовые операции являются одними из самых “легких” для компьютера. Это связано с тем, что они выполняются на уровне процессора и не требуют большого количества вычислительных ресурсов. Они используются для манипулирования отдельными битами в двоичном представлении чисел и могут быть очень эффективными для выполнения определенных задач. Однако, как и любая другая операция, побитовые операции могут быть использованы неправильно и привести к ошибкам в программе. Поэтому важно понимать, как они работают и как их использовать правильно.
RH
Roman Hayrapetyan
25 860