Преобразовать десятичное число в двоичное в Python очень просто с помощью встроенной функции bin(). В этой статье мы объясним, как это работает, и покажем несколько примеров и приемов.
Преобразование десятичной дроби в двоичную в Python с использованием рекурсивного решения
В этом примере мы напишем конкретную функцию (DecimalToBinary), которая будет реализована для получения частных (входных данных для следующего вызова функции) и остатка (выходного значения), а затем мы будем вызывать ее повторно, пока входное значение не станет больше и равно 1
Код:
#Recursive Function to convert Decimal to Binary
def decimalToBinary(ip_val):
if ip_val >= 1:
# recursive function call
decimalToBinary(ip_val // 2)
# printing remainder from each function call
print(ip_val % 2, end = '')
# Driver Code
if __name__ == '__main__':
# decimal value
ip_val = 24
# Calling special function
decimalToBinary(ip_val)
Выход:
011000
Временная сложность: O(log N) — рекурсивный подход делит десятичное число на 2 в каждом рекурсивном вызове, делая временную сложность логарифмической.
В Python преобразование десятичного значения в соответствующее ему двоичное представление может быть достигнуто с помощью функции bin(). Эта функция принимает значение в качестве параметра и создает его двоичный эквивалент.
Примечание: bin() возвращает двоичное значение с префиксом 0b, поэтому необходимо выполнить форматирование для удаления 0b в зависимости от варианта использования.
Код:
# Function to convert decimal to binary
# using built-in python function
def decimalToBinary(n):
# Converting decimal to binary
# and removing the prefix(0b)
return bin(n).replace("0b", "")
# Driver code
if __name__ == '__main__':
# calling function
# with decimal argument
print(decimalToBinary(77))
Выход:
1001101
Временная сложность: �(1)O(1) — встроенная функция интервала работает в постоянное время.
Мы также можем преобразовать десятичное число в двоичное число другим способом, помимо использования встроенной функции Python.
Код:
# Function to convert Decimal to Binary
def decimalToBinary(n):
return "{0:b}".format(int(n))
# Driver code
if __name__ == '__main__':
print(decimalToBinary(77))
Выход:
1001101
Временная сложность: �(����)O(logN) — как и рекурсивное решение, ручной метод имеет логарифмическую временную сложность.
Для тех, кто ищет ускоренный подход к преобразованию десятичных чисел в двоичные в Python, метод Quick Ninja предлагает упрощенное решение. Эта краткая методика идеально подходит для профессионалов, стремящихся к быстрой и эффективной трансформации без ущерба для эффективности.
Код:
# Function to convert Decimal to Binary
def decimalToBinary(n):
return bin(n)[2:]
# Driver code
if __name__ == '__main__':
print(decimalToBinary(24))
Выход:
11000
Временная сложность: �(1)O(1) — метод быстрого ниндзя использует bin, имеющая постоянную временную сложность.
Еще один мощный метод преобразования десятичных чисел в двоичные в Python предполагает умелое использование оператора побитового сдвига >>. Этот оператор позволяет нам сдвигать биты двоичного числа вправо, эффективно разделяя его на 2. Используя это свойство, мы можем итеративно применять операцию сдвига для получения двоичного представления десятичного числа.
Вот краткая реализация с использованием оператора побитового сдвига:
# Function to convert Decimal to Binary
def decimalToBinary(n):
binary_representation = ''
while n > 0:
binary_representation = str(n % 2) + binary_representation
n = n >> 1
return binary_representation
# Driver code
if __name__ == '__main__':
print(decimalToBinary(24))
Выход:
11000
В этом коде функция decimalToBinary итеративно добавляет самый правый бит текущего десятичного числа к двоичному представлению. Затем он сдвигает десятичное число вправо с помощью команды >> оператор.
Временная сложность: �(����)O(logN) — оператор побитового сдвига уменьшает десятичное число вдвое на каждой итерации.
Метод формата в Python предоставляет гибкие и удобные средства преобразования десятичных чисел в их двоичное представление. Этот метод позволяет точно контролировать форматирование вывода, что делает его ценным инструментом для разработчиков, стремящихся к ясности и настройке своих двоичных представлений.
Вот как вы можете использовать метод формата для преобразования десятичных чисел в двоичные:
# Function to convert Decimal to Binary
def decimalToBinary(n):
binary_representation = format(n, 'b')
return binary_representation
# Driver code
if __name__ == '__main__':
print(decimalToBinary(42))
Выход:
101010
В этом примере 'b' Спецификатор формата внутри метода формата указывает Python представлять данное целое число в виде двоичной строки. Этот краткий однострочный текст упрощает процесс преобразования, предоставляя элегантное решение для профессионалов, ищущих баланс между простотой и удобочитаемостью.
Временная сложность: O(logN) — подобно ручным методам, метод форматирования имеет логарифмическую временную сложность.