Python вывести двоичное число

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

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

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

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

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

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

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

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

Давайте рассмотрим меньшее двоичное число с 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)

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

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

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

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

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

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

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

Чтобы добавить двоичные числа «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)
# Binary multiplication binary_num1 = '1010' binary_num2 = '1101' result = bin(int(binary_num1, 2) * int(binary_num2, 2)) print(result)
# Binary division binary_num1 = '1101' binary_num2 = '101' result = bin(int(binary_num1, 2) // int(binary_num2, 2)) print(result)

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

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

Побитовое И

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

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

Код будет выполнять побитовую операцию И над двоичными числами. 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.

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

Побитовое исключающее ИЛИ ( ^ ) выполняет побитовую операцию 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.

Побитовое НЕ

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

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

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

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

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

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

Источник

Функция bin() в Python

Функция bin() в Python используется для преобразования целого числа в строку двоичного формата. Форматированная строка имеет префикс «0b».

Функция bin() может использоваться с целыми числами, имеющими разные форматы, такие как восьмеричный, шестнадцатеричный. Функция позаботится о преобразовании их в двоичную строку. Давайте посмотрим на несколько примеров функции bin().

x = 10 y = bin(x) print(type(y)) print(bin(x))

Функция bin в python

Из вывода видно, что функция bin() возвращает строку, а не число. Функция ype() возвращает тип объекта.

С целыми числами другого формата

Давайте посмотрим на несколько примеров использования функции bin() с целыми числами в разных форматах.

x = 0b110 # 6 print(bin(x)) x = 0xF # 15 print(bin(x)) x = 0o70 # 56 print(bin(x))

Совет: Если вам не нужен префикс «0b» в двоичной строке, вы также можете использовать функцию format(). Вот быстрый пример, показывающий, как использовать функцию format().

x = 10 print(format(x, '#b')) # 0b1010 print(format(x, 'b')) # 1010 x= 0xF print(format(x, 'b')) # 1111 print(f'') # 1111 (If you knew this format, you are Python Ninja!)

С аргументом float

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

TypeError: 'float' object cannot be interpreted as an integer

С объектом

Если вы хотите иметь двоичное строковое представление объекта, вам нужно будет реализовать функцию __index __(), которая должна возвращать целое число. Давайте посмотрим на простом примере.

class Person: def __init__(self, i): self.id = i def __index__(self): return self.id p = Person(10) print(bin(p))

Если объект не определяет функцию __index __(), мы получим сообщение об ошибке, как TypeError: объект ‘Person’ не может быть интерпретирован как целое число.

Посмотрим, что произойдет, если функция __index __() вернет no-int. Просто измените функцию index() на следующую:

def __index__(self): return str(self.id)

Ошибка: TypeError: __index__ вернул no-int (тип str).

Это все, что касается функции bin() для преобразования целого числа в двоичную строку. Мы также узнали, что объект также можно преобразовать в двоичное строковое представление, реализовав функцию __index __(), которая возвращает целое число.

Источник

Что такое функция bin() в Python?

Python имеет различные встроенные функции для обработки и выполнения операций с числовыми данными.

bin() function Python используется для преобразования десятичных числовых значений данных в их двоичный формат.

функция Bin()

bin() function возвращает значение двоичного представления целого числа, переданного ей в качестве аргумента с прикрепленным к нему префиксом «0b».

Пример 1: преобразование положительного числового значения в его двоичную форму

num = 3 res_bin = bin(num) print(res_bin)

Пример 2: преобразование отрицательного числового значения в его двоичный формат

num = -3 res_bin = bin(num) print(res_bin)

Двоичное представление элементов

numpy.binary_repr() function используется для преобразования значений данных массива в двоичную форму поэлементным способом в NumPy.

numpy.binary_repr(array[value],width)
  • width : этот параметр определяет длину возвращаемой строки, представляющей двоичный формат.
  • Если в функцию передается отрицательное значение и ширина не указана, то перед результатом добавляется знак минус (‘-‘). Если указана ширина, дополнение числа до двух представляется как абсолютное значение.
import numpy as N arr = [3,5,6,2] res_arr = N.binary_repr(arr[1]) print(res_arr)
import numpy as N arr = [3,5,6,2] res_arr = N.binary_repr(arr[1],width=5) print(res_arr)

Двоичное представление элементов данных в Pandas

Мы можем представить элементы набора данных в Pandas в двоичном формате. Функцию format() можно использовать для представления целочисленного значения в наборе данных в его эквивалентном двоичном формате.

Мы можем просто использовать apply() function и создать анонимную функцию, подразумевающую манипулирование каждым значением данных с помощью лямбда-выражения Python и функции format().

data['column'].apply(lambda element: format(int(element), 'b'))

набор данных

import pandas as PD data = PD.read_csv("C:/marketing_tr.csv") data_few = PD.DataFrame(data['custAge'].iloc[2:4]) data_few['custAge'].apply(lambda i: format(int(i), '05b'))

В приведенном выше фрагменте кода мы использовали функцию format (value, ‘b’) для преобразования значений данных в двоичную форму. Кроме того, мы создали функцию для достижения той же функциональности с использованием лямбда-выражения. «05b» представляет длину возвращаемой строки, т.е. length = 5.

2 101010 3 110111 Name: custAge, dtype: object

Источник

Оцените статью