Python

Двоичные числа и их операции в Python — полное руководство

Добро пожаловать в эту статью, где мы погрузимся в мир двоичных чисел. Мы изучим их преобразования, арифметические операции и побитовые операции. Двоичные числа — это язык, который понимает каждая машина.

Любые цифровые данные/носители/системы могут быть преобразованы в двоичные файлы! Двоичные числа имеют значение в криптографии, низкоуровневом программировании и кодировании/декодировании. Сегодня они составляют основу почти всех цифровых систем. Давайте начнем это путешествие и расширим наши знания вместе.

Понимание основ двоичных чисел

Двоичные числа, представленные с использованием системы счисления с основанием 2, являются фундаментальной концепцией в цифровых системах и информатике. Система счисления с основанием 2 использует только две цифры для представления любого числа, состоящего из 0 и 1.

Напротив, десятичная система счисления, с которой мы лучше всего знакомы, представляет собой систему с основанием 10, в которой используются десять цифр (0-9). Узнайте больше о системах счисления здесь. Несколько советов, о которых следует помнить при работе с двоичными числами:

  • Каждая цифра двоичного числа называется битом.
  • Крайний правый бит представляет значение 2^0(=1), следующий бит слева представляет 2^1(=2), следующий бит представляет 2^2(=4) и так далее.
  • Значение каждого бита получается путем возведения 2 в степень его позиции справа и умножения на соответствующее значение бита (0 или 1).

Ручное преобразование двоичного числа в десятичное

Давайте рассмотрим меньшее двоичное число с 4 битами, 1010. Чтобы преобразовать это двоичное число в десятичное, мы можем выполнить следующие шаги:

  • Чтобы преобразовать двоичное число в десятичное, присвойте каждой цифре вес в зависимости от ее положения в справа налево. Самая правая цифра имеет вес 2^0, следующая цифра имеет вес 2^1, затем 2^2 и так далее.
  • Умножьте каждую цифру на соответствующий вес, что означает, что давайте пойдем справа налево, у нас есть 0 в крайнем правом углу двоичного числа, поэтому мы умножим 0 на 2 ^ 0, после этого у нас есть 1, и тогда мы будем умножать будет 2^1 и так далее.
  • Суммируйте результаты: 1 * 2 ^ 3 + 0 * 2 ^ 2 + 1 * 2 ^ 1 + 0 * 2 ^ 0 = 8 + 0 + 2 + 0 = 10.
  • Следовательно, двоичное число 1010 равно десятичному числу 10.

Подход Python: преобразование десятичного числа в двоичное

Чтобы преобразовать любое десятичное число в двоичное, вы можете использовать bin() в python, который принимает целое число в качестве аргумента и выводит его двоичную форму.

decimal_number = 10
binary_number = bin(decimal_number)
print(binary_number)  

Выход:

Ячейка 5

«0b» — это префикс, обозначающий, что следующее число является двоичным числом. Он служит визуальным индикатором для отличия двоичных чисел от других числовых представлений.

Подход Python: преобразование двоичного кода в десятичный

Вы можете преобразовать двоичное число в целое, используя int(binary_number,2) функцию, указав базу 2. База 2 соответствует двоичным числам. Также присутствуют другие основания, такие как 10 для десятичного и 16 для шестнадцатеричного, вы можете использовать их для преобразования соответствующего числового представления в целые числа, просто изменив параметр функции int().

Пример:

binary_number="1010"
decimal_number = int(binary_number, 2)
print(decimal_number)  

Выход:

Ячейка 6

Выполнение арифметических операций с двоичными числами в Python

Мы можем выполнять основные арифметические операции с двоичными числами точно так же, как с десятичными числами. Однако прямая арифметическая операция невозможна. Пожалуйста, просмотрите приведенный ниже пример:

# Binary addition
binary_num1 = '1010'
binary_num2 = '1101'
result = bin(int(binary_num1, 2) + int(binary_num2, 2))
print(result)

Выход:

Корзина 1

Объяснение:

Чтобы добавить двоичные числа «1010» и «1101», мы сначала преобразуем их в десятичную форму, используя int(). Здесь «1010» и «1101» будут преобразованы в 10 (т.е. = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0) и 13 (т.е. = 1 * 2^3). + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0), и после этого мы получаем окончательную сумму 23, представленную как 10111.

Аналогичные правила применяются и к другим операциям, таким как вычитание, умножение и деление. Взгляните на приведенные ниже примеры, мы просто меняем арифметические операции, но процесс двоичной арифметики остается прежним:

 # Binary subtraction
binary_num1 = '1101'
binary_num2 = '1010'
result = bin(int(binary_num1, 2) - int(binary_num2, 2))
print(result)  

Выход:

Бункер 2
# Binary multiplication
binary_num1 = '1010'
binary_num2 = '1101'
result = bin(int(binary_num1, 2) * int(binary_num2, 2))
print(result)

Выход:

Бункер 3
# Binary division
binary_num1 = '1101'
binary_num2 = '101'
result = bin(int(binary_num1, 2) // int(binary_num2, 2))
print(result)  

Выход:

Ячейка 4

Изучение побитовых операций в Python

В Python побитовые операции позволяют вам манипулировать отдельными битами в целых числах. Они широко используются для проектирования схем и систем. Эти операции работают, выполняя операции над двоичными представлениями чисел. Вот наиболее часто используемые побитовые операторы в Python:

Побитовое И

Побитовое И (&) Выполняет операцию побитового И между соответствующими битами двух чисел. Результат имеет 1 с только в позициях, где оба числа имеют 1 с. Для любой другой комбинации (01, 00, 11) мы получим 0.

Пример:

# Bitwise AND
num1 = 0b1010
num2 = 0b1100
result = num1 & num2
print(bin(result)) 

Выход:

Ячейка 7

Код будет выполнять побитовую операцию И над двоичными числами. 0b1010 и 0b1100. Полученное двоичное число равно 0b1000который представляет десятичное число 8.

Двоичные операции не ограничиваются только двумя числами; Вы можете выполнять операции более чем с двумя числами одновременно в одной строке. Это верно для всех операторов, кроме операции НЕ.

Побитовое ИЛИ

Побитовый оператор ИЛИ (|) в Python оценивает позицию каждого бита и возвращает результат, в котором каждому биту присваивается значение 1, если хотя бы один из соответствующих битов в операндах равен 1. Возможные комбинации: 11, 10 и 01. Операция ИЛИ возвращает 0, только если мы есть 00.

Пример:

# Bitwise OR
num1 = 0b1010
num2 = 0b1100
result = num1 | num2
print(bin(result)) 

Код будет выполнять побитовую операцию ИЛИ над двоичными числами. 0b1010 и 0b1100. Результат 0b1110который представляет двоичное число 1110.

Выход:

Ячейка 8

Побитовое исключающее ИЛИ

Побитовое исключающее ИЛИ (^) выполняет побитовую операцию XOR (исключающее ИЛИ) между соответствующими битами двух чисел. Результат имеет 1 в позициях, где биты различаются между двумя числами. На более простом языке, если соответствующие биты одинаковы (11 или 00), результат равен 0, в противном случае результат равен 1. Если вы заинтересованы в решении проблем, некоторые наблюдения за операцией XOR могут быть очень полезными. Давайте рассмотрим пример, чтобы понять реализацию Python:

# Bitwise XOR
num1 = 0b110
num2 = 0b111
result = num1 ^ num2
print(bin(result)) 

Код будет выполнять побитовую операцию XOR над двоичными числами. 0b110 и 0b111. Результат 0b110который представляет двоичное число 110.

Выход:

Ячейка 9

Побитовое НЕ

Побитовое НЕ (~) выполняет побитовую операцию НЕ над единый номер, инвертируя все биты. Этот оператор переворачивает все 1 на 0 и наоборот.

# Bitwise NOT
num = 0b1010
result = ~num
print(bin(result))  

Код применяет побитовое НЕ (~) к двоичному коду 0b1010, в результате чего получается 0b-1011 (дополнение до двух). Он представляет -5 в десятичной форме, переворачивая биты и добавляя 1.

Выход:

Ячейка 10

Подведение итогов: двоичные числа и их операции в Python

В этой статье мы погрузились в увлекательный мир двоичных чисел и операций с ними в Python. От понимания основ до выполнения сложных побитовых операций — мы увидели, как Python упрощает работу с двоичными числами. Пока мы продолжаем изучать возможности Python, какие еще интересные аспекты этого языка вам хотелось бы открыть?

Ниже приведены несколько интересных статей AskPython, с которыми вы можете ознакомиться.:


Ссылка на источник

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

Кнопка «Наверх»