Преобразование десятичного в двоичный файл в python

Есть ли какой-либо модуль или функция в python, который я могу использовать для преобразования десятичного числа в его двоичный эквивалент? Я могу преобразовать двоичный код в десятичный, используя int ('[binary_value]', 2), так что любой способ сделать обратный, не записывая код, чтобы сделать это сам?

Ответ 1

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

>>> bin(10)
'0b1010'
>>> 0b1010
10

Ответ 2

"{0:#b}".format(my_int)

Ответ 3

Без 0b впереди:

"{0:b}".format(int)

Ответ 4

def dec_to_bin(x):
    return int(bin(x)[2:])

Это легко.

Ответ 5

Вы также можете использовать функцию из модуля numpy

from numpy import binary_repr

который также может обрабатывать начальные нули:

Definition:     binary_repr(num, width=None)
Docstring:
    Return the binary representation of the input number as a string.

    This is equivalent to using base_repr with base 2, but about 25x
    faster.

    For negative numbers, if width is not given, a - sign is added to the
    front. If width is given, the two complement of the number is
    returned, with respect to that width.

Ответ 6

Я согласен с ответом @aaronasterling. Однако, если вам нужна небиная строка, которую вы можете использовать в int, вы можете использовать канонический алгоритм:

def decToBin(n):
    if n==0: return ''
    else:
        return decToBin(n/2) + str(n%2)

Ответ 7

n=int(input('please enter the no. in decimal format: '))
x=n
k=[]
while (n>0):
    a=int(float(n%2))
    k.append(a)
    n=(n-a)/2
k.append(0)
string=""
for j in k[::-1]:
    string=string+str(j)
print('The binary no. for %d is %s'%(x, string))

Ответ 8

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

  • Получить целочисленную и дробную часть.

    from decimal import *
    a = Decimal(3.625)
    a_split = (int(a//1),a%1)
    
  • Преобразуйте дробную часть в ее двоичное представление. Чтобы добиться этого, умножьте последовательно на 2.

    fr = a_split[1]
    str(int(fr*2)) + str(int(2*(fr*2)%1)) + ...
    

Здесь вы можете прочитать объяснение здесь.