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

Хотел бы уточнить, если ли реальные проекты с реальной необходимостью использовать побитовые операции на питоне? Интересно, так как еще не встречался с такими, да и во всех книгах о них упоминается из разряда "вдруг".
  • Вопрос задан
  • 2073 просмотра
Решения вопроса 1
@deliro
Например, флаги. Юзер может:
0b1  # Читать
0b10  # Писать
0b100  # Редактировать
0b1000  # Удалять

0b1010  # юзер может писать и удалять, но не может читать и редактировать

Итого, все флаги можно запихнуть в инт, который можно запихнуть в 1 байт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Для того же, для чего они могут быть нужны в других ЯП.
Например - упаковать два инта в один для передачи по сети. Для работы с цветом бывает удобно. Банальные проверки четности-степени двойки.
Ответ написан
mysticmirage
@mysticmirage
Для подсчёта контрольной суммы, например:
def _crc(packet_array):
    checksum = 0
    for i in packet_array:
        checksum = checksum ^ (i << 8)
        for _ in range(8):
            if (checksum & 0x8000) > 0:
                checksum = (checksum << 1) ^ 0x1021
            else:
                checksum = checksum << 1
        checksum = checksum & 0xffff
    return checksum
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы