Модуль 10.2 Битовые операции И, ИЛИ, НЕ, XOR.
Установите соответствия между обозначениями операторов и их описаниями.
На вход программы подается целое десятичное число. Используя битовые операции, включите третий бит введенного числа. Выведите на экран полученное числовое значение.
P. S. Распределение номеров бит представлено на следующем рисунке.
# принимаем ввод целого числа a = int(input()) # применяем операцию побитового ИЛИ (OR) между значением переменной a и числом 8 (в двоичном виде 0b1000) a = a | 8 # выводим результат print(a)
На вход программы подается целое десятичное число. Используя битовые операции, выключите 4-й и 1-й биты введенного числа. Выведите на экран полученное числовое значение.
P. S. Распределение номеров бит представлено на следующем рисунке.
# принимаем ввод целого числа n = int(input()) # применяем операцию побитового И (AND) между значением переменной n и битовым отрицанием числа 0b10010 # битовое отрицание инвертирует каждый бит в числе, то есть меняет 0 на 1 и наоборот res = n & ~0b10010 # выводим результат print(res)
На вход программы подается целое десятичное число. Используя битовые операции, переключите 3-й и 0-й биты введенного числа. Выведите на экран полученное числовое значение.
P. S. Распределение номеров бит представлено на следующем рисунке.
# принимаем ввод целого числа n = int(input()) # применяем операцию побитового исключающего ИЛИ (XOR) между значением переменной n и числом 0b1001 # операция побитового XOR выставляет в результате единицу только в тех битах, которые отличаются в двух операндах, # а в остальных битах результат будет равен нулю # если бит в n равен 0, то в результате его значение будет равно значению соответствующего бита числа 0b1001, # если бит в n равен 1, то в результате его значение будет инвертировано (0 станет 1, а 1 - 0) print(n ^ 0b1001)
На вход программы подается целое десятичное число. Используя битовые операции, выполните умножение введенного числа на 4. Результат отобразите на экране.
# Получаем целочисленное значение a = int(input()) # Выполняем левый сдвиг значения переменной 'a' на 2 бита и выводим результат print(a<<2)
На вход программы подается целое десятичное число. Используя битовые операции, выполните целочисленное деление введенного числа на 2. Результат отобразите на экране.
# Получаем целочисленное значение a = int(input()) # Выполняем правый сдвиг значения переменной 'a' на 1 бит и выводим результат print(a>>1)
Вводится зашифрованное слово. Шифрование кодов символов этого слова было проведено с помощью битовой операции XOR с ключом key=123. То есть, каждый символ был преобразован по алгоритму:
x = ord(x) ^ key
Здесь ord — функция, возвращающая код символа x. Расшифруйте введенное слово и выведите его на экран.
P. S. Подсказка: для преобразования кода в символ используйте функцию chr.
# Проходим по каждому символу введенной пользователем строки for i in input(): # Выполняем операцию побитового исключающего ИЛИ между кодом символа 'i' и числом 123, # затем преобразуем полученный код символа в символ с помощью функций ord и chr, # и выводим его в стандартный вывод без перевода строки print(chr(ord(i) ^ 123), end='')
На вход программы подается целое десятичное число. Используя битовые операции, проверьте, включен ли 6-й и 3-й биты введенного числа. Если они оба включены, то выведите слово ДА, иначе — слово НЕТ.
P. S. Распределение номеров бит представлено на следующем рисунке.
# принимаем число и преобразуем в целое n = int(input()) # проверяем, есть ли в двоичном представлении числа биты 3 и 6, установленные в 1 if n & (1 << 3) and n & (1 << 6): # если оба бита установлены, выводим "ДА" print('ДА') else: # иначе выводим "НЕТ" print('НЕТ')
На вход программы подается целое десятичное число. Используя битовые операции, проверьте, включен ли 5-й или 1-й биты введенного числа. Если включен хотя бы один из этих битов, то выведите слово ДА, иначе — слово НЕТ.
P. S. Распределение номеров бит представлено на следующем рисунке.
# принимаем число и преобразуем в целое n = int(input()) # проверяем, есть ли в двоичном представлении числа бит 1 или 5, установленные в 1 if n & (1 << 1) or n & (1 << 5): # если хотя бы один из битов установлен в 1, выводим "ДА" print('ДА') else: # иначе выводим "НЕТ" print('НЕТ')
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы