Как инвертировать двоичное число в Питоне? 🔄
Для инвертирования двоичного числа в Python вы можете использовать оператор побитового инвертирования (~) совместно с функцией bin().
number = 10
binary = bin(number)
inverted_binary = bin(~number)
print(f"Исходное число: {binary}")
print(f"Инвертированное число: {inverted_binary}")
В этом примере мы сначала преобразуем число 10 в его двоичное представление с помощью функции bin(). Затем мы инвертируем его при помощи оператора побитового инвертирования (~) и сохраняем в переменной inverted_binary. В конце мы выводим исходное и инвертированное числа с помощью функции print().
Детальный ответ
Как инвертировать двоичное число в питоне?
Python предоставляет простой и эффективный способ инвертировать двоичное число. Давайте рассмотрим несколько способов, как это можно сделать.
Способ 1: Использование побитового исключающего ИЛИ (^)
Один из самых простых способов инвертировать двоичное число в Python - это использовать побитовое исключающее ИЛИ (^) с числом, состоящим из единиц. Приведем пример:
def invert_binary_number(number):
# Создаем число, состоящее из единиц, с той же длиной, что и исходное число
mask = (1 << number.bit_length()) - 1
inverted_number = number ^ mask
return inverted_number
# Пример использования
binary_number = 0b101010
inverted_number = invert_binary_number(binary_number)
print(f"Инвертированное число: {bin(inverted_number)}") # Выводит: 0b10101
В этом примере мы создаем маску, состоящую из единиц, с помощью оператора сдвига. Затем мы используем побитовое исключающее ИЛИ между исходным числом и маской, чтобы инвертировать его биты. В результате получаем инвертированное двоичное число.
Способ 2: Использование побитового NOT (~)
Второй способ инвертировать двоичное число - это использовать побитовый оператор NOT (~). Пример:
def invert_binary_number(number):
inverted_number = ~number
return inverted_number
# Пример использования
binary_number = 0b101010
inverted_number = invert_binary_number(binary_number)
print(f"Инвертированное число: {bin(inverted_number)}") # Выводит: -0b101011
В этом примере мы используем побитовый оператор NOT (~) для инвертирования битов исходного числа. Обратите внимание, что результатом будет отрицательное число, так как оператор NOT также меняет знак числа.
Способ 3: Использование функции bin() и срезов
Еще один способ инвертировать двоичное число - это использовать функцию bin()
для преобразования числа в двоичную строку, а затем использовать срезы для инвертирования его. Пример:
def invert_binary_number(number):
binary_string = bin(number)[2:] # Игнорируем первые два символа '0b'
inverted_string = ''.join('1' if bit == '0' else '0' for bit in binary_string)
inverted_number = int(inverted_string, 2)
return inverted_number
# Пример использования
binary_number = 0b101010
inverted_number = invert_binary_number(binary_number)
print(f"Инвертированное число: {bin(inverted_number)}") # Выводит: 0b10101
В этом примере мы преобразуем исходное число в двоичную строку, используя функцию bin()
. Затем мы инвертируем каждый бит строки, используя генератор списка и условное выражение. Далее, мы преобразуем инвертированную строку обратно в число с помощью функции int()
с указанием основания 2.
Вот несколько способов, которые вы можете использовать для инвертирования двоичного числа в Python. Выберите тот, который вам более удобен и подходит для вашей задачи.