- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Haskell Program to convert the decimal number to binary using recursion

In Haskell, we will convert the decimal number to binary by using recursion and tail-recursion. In the first example, we are going to use base case, (decToBin 0 = "0" and decToBin 1 = "1") and recursive case, (decToBin n = decToBin (n `div` 2) ++ show (n `mod` 2)). Whereas in second example, we are going to use tail-recursive function.

## Algorithm

**Step 1**− The user defined, decToBin function is defined with base and recursive case as,

Example 1 and 2 −

decToBin 0 = "0" decToBin 1 = "1" decToBin n = decToBin (n `div` 2) ++ show (n `mod` 2).

Example 3 −

decToBin n = decToBin' n [] where decToBin' 0 acc = acc decToBin' n acc = decToBin' (n `div` 2) (show (n `mod` 2) ++ acc).

**Step 2**− Program execution will be started from main function. The main() function has whole control of the program. It is written as main = do. In the main function, we define a variable n with the value 15, and print the result of decToBin n to the console. The output will be the binary representation of the decimal number 15.**Step 3**− The variable named, “n” is being initialized. It will hold the numbers which is to be converted to binary from decimal number.**Step 4**− The resultant binary number is printed to the console using ‘print’ function after the function is called.

## Example 1

In this example, we define a function decToBin which takes an Int argument n and returns its binary representation as a String. The function uses recursion to convert the decimal number to binary.

decToBin :: Int -> String decToBin 0 = "0" decToBin 1 = "1" decToBin n = decToBin (n `div` 2) ++ show (n `mod` 2) main :: IO () main = do let n = 15 print (decToBin n)

## Output

“1111”

## Example 2

In this example, the result is reversed using the reverse function, as the binary representation of the decimal number is built from the least significant bit to the most significant bit.

decToBin :: Int -> String decToBin 0 = "" decToBin n = decToBin (n `div` 2) ++ show (n `mod` 2) main :: IO () main = do let n = 15 print (reverse (decToBin n))

## Output

“1111”

## Example 3

In this example, we define a function tail-recursive decToBin which takes an Int argument n and returns its binary representation as a String. The function uses tail recursion to convert the decimal number to binary.

decToBin :: Int -> String decToBin n = decToBin' n [] where decToBin' 0 acc = acc decToBin' n acc = decToBin' (n `div` 2) (show (n `mod` 2) ++ acc) main :: IO () main = do let n = 15 print (decToBin n)

## Output

“1111”

## Conclusion

To convert a decimal number to binary in Haskell, one can write a function that implements the process of repeatedly dividing the decimal number by 2 and storing the remainder until the decimal number becomes 0. The binary representation of the decimal number is then constructed from the remainders obtained in the reverse order. The recursion is used to implement the same.

- Related Articles
- Swift program to convert the decimal number to binary using recursion
- Haskell Program to convert the Binary number to Gray code using recursion
- Haskell Program to convert Decimal to Binary
- Haskell Program to convert Binary to Decimal
- Haskell program to convert a decimal number into a binary number
- How to convert a number from Decimal to Binary using recursion in C#?
- How to Convert Decimal to Binary Using Recursion in Python?
- C++ Program to convert the Binary number to Gray code using recursion
- C++ program to Convert a Decimal Number to Binary Number using Stacks
- Java Program to convert binary number to decimal number
- C++ Program To Convert Decimal Number to Binary
- Python program to convert decimal to binary number
- Convert decimal to binary number in Python program
- Java program to convert decimal number to binary value
- Java program to convert binary number to decimal value