Как инвертировать двоичное число в Python: простые шаги и советы

Как инвертировать двоичное число в Python

Для того чтобы инвертировать двоичное число в Python, вы можете использовать побитовый оператор "~". Этот оператор инвертирует каждый бит в числе.

Вот пример кода:


num = 42
inverted_num = ~num
print(bin(inverted_num))

В данном примере мы объявляем переменную "num" и присваиваем ей значение 42. Затем мы используем побитовый оператор "~" для инвертирования числа и сохраняем результат в переменную "inverted_num". И, наконец, мы выводим инвертированное число в двоичном формате с помощью функции "bin()".

Результат выполнения кода будет:

-0b101011

Это инвертированное значение числа 42 в двоичном формате.

Детальный ответ

Как инвертировать двоичное число в Python

Инвертирование двоичного числа означает замену каждого бита в числе на противоположный бит. В Python существует несколько способов выполнить данную операцию.

Способ 1: Использование оператора побитового NOT (~)

В Python оператор побитового NOT (~) выполняет инверсию отдельных битов числа. Для инвертирования двоичного числа, мы можем использовать этот оператор в сочетании с побитовым сдвигом влево (<<) и вправо (>>).


# Пример инвертирования двоичного числа с использованием оператора побитового NOT (~)
def invert_binary_number(num):
    # Получение количества бит в числе
    num_bits = num.bit_length()
    
    # Инвертирование числа
    inverted_num = ~num
    
    # Обнуление лишних битов
    inverted_num = inverted_num << (32 - num_bits)
    inverted_num = inverted_num >> (32 - num_bits)
    
    return inverted_num

# Пример использования функции
binary_num = 0b10101010
inverted_binary_num = invert_binary_number(binary_num)
print(bin(inverted_binary_num))  # Выводит "0b01010101"

В данном примере, функция invert_binary_number принимает двоичное число num и выполняет инверсию его битов. С помощью метода bit_length() мы определяем количество бит в числе. Затем, с помощью оператора побитового NOT, мы инвертируем биты числа. Чтобы обнулить лишние биты, мы выполняем побитовый сдвиг влево и вправо на разницу между общим количеством бит и количеством бит в числе.

Способ 2: Использование оператора XOR (^)

Другой способ инвертирования двоичного числа в Python - использование оператора XOR (^). Оператор XOR выполняет исключающее ИЛИ для каждого бита в числах, что приводит к инверсии битов.


# Пример инвертирования двоичного числа с использованием оператора XOR (^)
def invert_binary_number(num):
    # Инвертирование числа
    inverted_num = num ^ int('1' * num.bit_length(), 2)
    
    return inverted_num

# Пример использования функции
binary_num = 0b10101010
inverted_binary_num = invert_binary_number(binary_num)
print(bin(inverted_binary_num))  # Выводит "0b01010101"

В данном примере, функция invert_binary_number принимает двоичное число num и выполняет инверсию его битов с помощью оператора XOR. Мы создаем строку, содержащую только единицы соответствующей длины, и преобразуем ее в целое число с помощью функции int(). Затем, применяя оператор XOR между двоичным числом и созданным числом, мы инвертируем биты числа.

Способ 3: Использование метода replace()

Еще один способ инвертирования двоичного числа в Python - использование метода replace() для замены каждого символа в строке двоичного числа на противоположный символ.


# Пример инвертирования двоичного числа с использованием метода replace()
def invert_binary_number(num):
    binary_str = bin(num)[2:]  # Преобразование числа в строку двоичного числа без префикса '0b'
    inverted_binary_str = binary_str.replace('0', 'x').replace('1', '0').replace('x', '1')
    inverted_num = int(inverted_binary_str, 2)  # Преобразование строки обратно в целое число
    
    return inverted_num

# Пример использования функции
binary_num = 0b10101010
inverted_binary_num = invert_binary_number(binary_num)
print(bin(inverted_binary_num))  # Выводит "0b01010101"

В данном примере, функция invert_binary_number принимает двоичное число num и выполняет инверсию его битов с использованием метода replace(). Сначала мы преобразуем число в строку двоичного числа без префикса '0b'. Затем, заменяя каждый символ '0' на '1' и каждый символ '1' на '0', мы получаем инвертированную строку двоичного числа. Наконец, мы преобразуем обратно строку в целое число с помощью функции int().

Вывод

Теперь у вас есть три различных способа инвертировать двоичное число в Python. Вы можете выбрать любой из них в зависимости от ваших предпочтений и требований. Оператор побитового NOT (~), оператор XOR (^) и метод replace() предоставляют эффективные способы достижения желаемого результата.

Видео по теме

Десятичное число в двоичное. Язык программирования Python

системы счисления в python

Перевернуть число. Решение задачи на Python

Похожие статьи:

Как добавить число в множество Python? 🧮

🔑 Как вывести среднее арифметическое в Python | Простой способ!

Все, что вам нужно знать о остановке потоков в Python: threading Python как остановить поток

Как инвертировать двоичное число в Python: простые шаги и советы

⚡️Как удалить элемент массива в питоне по индексу: гайд и примеры!

🔍 Как перевести в двоичный код в Python: простое руководство со схемами

Что делает команда print в Python? Узнайте все тонкости!