Я полностью понимаю , как сдвигать биты. Я работал с многочисленными примерами на бумаге и в коде, и мне там не нужна помощь.
Я пытаюсь придумать примеры из реальной жизни о том, как используется сдвиг битов. Вот несколько примеров, которые я смог придумать:
Возможно, самый важный пример, который я мог осмыслить, был связан с порядком байтов. В системах с прямым порядком байтов младшие значащие биты сохраняются слева, а в системах с младшим порядком байтов младшие значащие биты сохраняются справа. Я полагаю, что для передачи файлов и сетей между системами, использующими стратегии с обратным порядком байтов, необходимо выполнить определенные преобразования.
Кажется, некоторые компиляторы и процессоры могли бы внести некоторые оптимизации при работе с любыми умножениями n ^ 2, n ^ 4 и т. Д. Биты просто сдвигаются влево. (Наоборот, я полагаю, то же самое применимо к делению, n / 2, n / 4 и т. Д.)
В алгоритмах шифрования. Т.е. использовать серию битовых сдвигов, реверсов и комбинаций, чтобы запутать что-либо.
Являются ли все эти точные примеры? Есть ли что-нибудь, что вы хотели бы добавить? Я потратил довольно много времени на изучение того, как реализовать сдвиг битов / переупорядочение / перестановку байтов, и я хочу знать, как это можно применять практически =)