# Convert Decimal to Binary Python Programs

In this article, we will look at 5 different ways to convert decimal to binary in Python.

## Decimal and Binary Numbers

Decimal numbers are the numbers we use in our day-to-day life. It is a base 10 number system. The decimal number system has 10 digits from 0 to 9.

Binary numbers are the numbers that are represented in base 2. The binary number system has 2 digits 0 and 1.

Any decimal number can be converted to a binary number. For example, 10 in decimal is 1010 in binary.

Decimal numbers can be represented in binary format.

(0)_{10}= (0)_{2}(1)_{10}= (1)_{2}(2)_{10}= (10)_{2}(5)_{10}= (111)_{2}(10)_{10}= (1010)_{2}(15)_{10}= (1111)_{2}(50)_{10}= (110010)_{2}(100)_{10}= (1100100)_{2}

To convert a decimal number to binary, we need to divide the decimal number by 2 and write the remainder in reverse order.

## # Method 1: Using bin() function

The bin() function is built-in function in Python. It can be used to convert a decimal number to a binary number.

It takes a single argument as input and returns the binary equivalent of the input number. The input number can be of any base but the output is always in base 2.

```
n = 10
print(bin(n))
# Output: 0b1010
n = 20
print(bin(n))
# Output: 0b10100
```

## # Method 2: Division by 2 (using array)

In the last method, we used a built-in python function to convert decimal to binary. In this method, we will use a simple algorithm to convert decimal numbers to binary.

### Algorithm

- Take a variable bin (to store the binary number) and initialize it to 0.
- Take an empty array (list in python) arr to store the binary digits.
- Now execute a while loop until the number is greater than 0.
- Inside the loop, append the remainder of the number divided by 2 to the array and divide the number by 2.
- Now reverse the array because the binary digits we get are in reverse order.
- Now iterate through the array and multiply the variable bin by 10 and add the array element to it.
- Finally, return the variable bin.

```
def dectobin(n):
bin = 0
arr = []
while n > 0:
arr.append(n % 2)
n //= 2
arr.reverse()
for i in arr:
bin = bin * 10 + i
return bin
n = int(input("Enter a decimal number: "))
print(dectobin(n))
```

Output:

Enter a decimal number: 25 Binary number: 11001

## # Method 3: Division by 2 (without using array)

In this method, we will use the same algorithm as in the previous method but we will not use an array to store the binary digits.

With a little modification, we can store the binary digits in a variable and return it.

### Algorithm

- Take a variable bin (to store the binary number) and initialize it to 0.
- Take a variable i and initialize it to 1. This variable will be used to multiply the binary digits with the power of 10.
- Now run a while loop until the number is greater than 0.
- Inside the loop, add the remainder of the number divided by 2 to the variable bin and multiply it by the variable i.
- Now divide the number by 2 and multiply the variable i by 10.
- Finally, return the variable bin.

```
def dectobin(n):
bin = 0
i = 1
while n > 0:
bin = bin + (n % 2) * i
n //= 2
i *= 10
return bin
n = int(input("Enter a decimal number: "))
print(dectobin(n))
```

Output:

Enter a decimal number: 50 Binary number: 110010

## # Method 4: Using Recursion

Recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem.

We will call the same function recursively with the quotient of the number divided by 2 as the argument.

```
def dectobin(n):
if n == 0:
return 0
else:
return n % 2 + 10 * dectobin(n // 2)
n = int(input("Enter a decimal number: "))
print(dectobin(n))
```

Output:

Enter a decimal number: 100 Binary number: 1100100