# Decimal to binary conversion without using arithmetic operators

Find the binary equivalent of the given non-negative number n without using arithmetic operators.

Examples:

```Input : n = 10
Output : 1010

Input : n = 38
Output : 100110
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Note that + in below algorithm/program is used for concatenation purpose.

Algorithm:

```decToBin(n)
if n == 0
return "0"
Declare bin = ""
Declare ch
while n > 0
if (n & 1) == 0
ch = '0'
else
ch = '1'
bin = ch + bin
n = n >> 1
return bin
```

## C++

 `// C++ implementation of decimal to binary conversion ` `// without using arithmetic operators ` `#include ` ` `  `using` `namespace` `std; ` ` `  `// function for decimal to binary conversion ` `// without using arithmetic operators ` `string decToBin(``int` `n) ` `{ ` `    ``if` `(n == 0) ` `        ``return` `"0"``; ` `     `  `    ``// to store the binary equivalent of decimal ` `    ``string bin = ``""``;     ` `    ``while` `(n > 0)     ` `    ``{ ` `        ``// to get the last binary digit of the number 'n' ` `        ``// and accumulate it at the beginning of 'bin' ` `        ``bin = ((n & 1) == 0 ? ``'0'` `: ``'1'``) + bin; ` `         `  `        ``// right shift 'n' by 1 ` `        ``n >>= 1; ` `    ``} ` `     `  `    ``// required binary number ` `    ``return` `bin; ` `} ` ` `  `// Driver program to test above ` `int` `main() ` `{ ` `    ``int` `n = 38; ` `    ``cout << decToBin(n); ` `    ``return` `0; ` `}  `

## Java

 `// Java implementation of decimal  ` `// to binary conversion without ` `// using arithmetic operators ` `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `    ``// function for decimal to  ` `    ``// binary conversion without ` `    ``// using arithmetic operators ` `    ``static` `String decToBin(``int` `n) ` `    ``{ ` `        ``if` `(n == ``0``) ` `            ``return` `"0"``; ` `     `  `        ``// to store the binary  ` `        ``// equivalent of decimal ` `        ``String bin = ``""``;  ` `         `  `        ``while` `(n > ``0``)  ` `        ``{ ` `            ``// to get the last binary digit  ` `            ``// of the number 'n' and accumulate  ` `            ``// it at the beginning of 'bin' ` `            ``bin = ((n & ``1``) == ``0` `? ``'0'` `: ``'1'``) + bin; ` `             `  `            ``// right shift 'n' by 1 ` `            ``n >>= ``1``; ` `        ``} ` `         `  `        ``// required binary number ` `        ``return` `bin; ` `    ``} ` ` `  `    ``// Driver program to test above ` `    ``public` `static` `void` `main (String[] args) { ` ` `  `    ``int` `n = ``38``; ` `    ``System.out.println(decToBin(n)); ` `    ``} ` `}  ` ` `  `// This code is contributed by vt_m `

/div>

## Python3

 `# Python3 implementation of  ` `# decimal to binary conversion ` `# without using arithmetic operators ` ` `  `# function for decimal to  ` `# binary conversion without  ` `# using arithmetic operators ` `def` `decToBin(n): ` `    ``if``(n ``=``=` `0``): ` `        ``return` `"0"``; ` `         `  `    ``# to store the binary ` `    ``# equivalent of decimal ` `    ``bin` `=` `""; ` `     `  `    ``while` `(n > ``0``): ` `         `  `        ``# to get the last binary ` `        ``# digit of the number 'n' ` `        ``# and accumulate it at  ` `        ``# the beginning of 'bin' ` `        ``if` `(n & ``1` `=``=` `0``): ` `            ``bin` `=` `'0'` `+` `bin``; ` `        ``else``: ` `            ``bin` `=` `'1'` `+` `bin``; ` `         `  `        ``# right shift 'n' by 1 ` `        ``n ``=` `n >> ``1``; ` `     `  `    ``# required binary number ` `    ``return` `bin``; ` ` `  `# Driver Code ` `n ``=` `38``; ` `print``(decToBin(n)); ` ` `  `# This code is contributed ` `# by mits `

## C#

 `// C# implementation of decimal ` `// to binary conversion without ` `// using arithmetic operators ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// function for decimal to ` `    ``// binary conversion without ` `    ``// using arithmetic operators ` `    ``static` `String decToBin(``int` `n) ` `    ``{ ` `        ``if` `(n == 0) ` `            ``return` `"0"``; ` ` `  `        ``// to store the binary ` `        ``// equivalent of decimal ` `        ``String bin = ``""``; ` ` `  `        ``while` `(n > 0) { ` `             `  `            ``// to get the last binary digit ` `            ``// of the number 'n' and accumulate ` `            ``// it at the beginning of 'bin' ` `            ``bin = ((n & 1) == 0 ? ``'0'` `: ``'1'``) + bin; ` ` `  `            ``// right shift 'n' by 1 ` `            ``n >>= 1; ` `        ``} ` ` `  `        ``// required binary number ` `        ``return` `bin; ` `    ``} ` ` `  `    ``// Driver program to test above ` `    ``public` `static` `void` `Main() ` `    ``{ ` ` `  `        ``int` `n = 38; ` `        ``Console.WriteLine(decToBin(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007 `

## PHP

 ` 0)  ` `    ``{ ` `        ``// to get the last binary  ` `        ``// digit of the number 'n' ` `        ``// and accumulate it at ` `        ``// the beginning of 'bin' ` `        ``\$bin` `= ((``\$n` `& 1) == 0 ?  ` `                          ``'0'` `: ``'1'``) . ``\$bin``; ` `         `  `        ``// right shift 'n' by 1 ` `        ``\$n` `>>= 1; ` `    ``} ` `     `  `    ``// required binary number ` `    ``return` `\$bin``; ` `} ` ` `  `// Driver Code ` `\$n` `= 38; ` `echo` `decToBin(``\$n``); ` ` `  `// This code is contributed ` `// by mits ` `?> `

Output:

```100110
```

Time complexity: O(num), where num is the number of bits in the binary representation of n.

## tags:

Mathematical base-conversion Mathematical