• Для чего нужны побитовые операции?

    @Mercury13
    Программист на «си с крестами» и не только
    Для чего битовые сдвиги вообще существуют? А потому, что они выполняются очень простой схемой — сдвиговым регистром. И вместо того, чтобы проводить умножение (поначалу это было десятки тактов), подключаем этот самый регистр к регистрам процессора, и выполним всё за один такт. Существовала даже программа, генерирующая быстрый код умножения на константу, например, 6 — сдвинуть, сложить и ещё раз сдвинуть. И это в своё время было быстрее, чем mul — а ведь сейчас мы без зазрения совести пишем mul eax, 6.

    Чего могут сдвиги, но со скрипом реализуется через всё остальное? Доступ к i-му биту.
    i-й бит = (x >> i) & 1

    По правилам хорошего программистского тона умножение, даже на 2 или на 4, пишется как обычное * (>> пишут, если компилятор непроходимо туп и умножение медленнее). А вот сдвиги — именно их, а не умножение — пишут, когда работают с битовыми полями.

    Есть также специальные сдвиги.
    * Арифметический сдвиг вправо (левый совпадает с обычным) — для чисел со знаком.
    * Сдвиг-вращение — в основном для криптографии.
    * Сдвиг-вращение через регистр флагов — в основном для длинной арифметики.
    Ответ написан
    Комментировать