Write a program to print Binary representation of a given number.
Source: Microsoft Interview Set-3
Method 1: Iterative
For any number, we can check whether its ‘i’th bit is 0(OFF) or 1(ON) by bitwise ANDing it with “2^i” (2 raise to i).
1) Let us take number 'NUM' and we want to check whether it's 0th bit is ON or OFF
bit = 2 ^ 0 (0th bit)
if NUM & bit == 1 means 0th bit is ON else 0th bit is OFF
2) Similarly if we want to check whether 5th bit is ON or OFF
bit = 2 ^ 5 (5th bit)
if NUM & bit == 1 means its 5th bit is ON else 5th bit is OFF.
Let us take unsigned integer (32 bit), which consist of 0-31 bits. To print binary representation of unsigned integer, start from 31th bit, check whether 31th bit is ON or OFF, if it is ON print “1” else print “0”. Now check whether 30th bit is ON or OFF, if it is ON print “1” else print “0”, do this for all bits from 31 to 0, finally we will get binary representation of number.
C
#include<stdio.h>
void bin(unsigned n)
{
unsigned i;
for (i = 1 << 31; i > 0; i = i / 2)
(n & i) ? printf ( "1" ) : printf ( "0" );
}
int main( void )
{
bin(7);
printf ( "\n" );
bin(4);
}
|
Output
00000000000000000000000000000111
00000000000000000000000000000100
Method 2: Recursive
Following is recursive method to print binary representation of ‘NUM’.
step 1) if NUM > 1
a) push NUM on stack
b) recursively call function with 'NUM / 2'
step 2)
a) pop NUM from stack, divide it by 2 and print it's remainder.
C++
#include <bits/stdc++.h>
using namespace std;
void bin(unsigned n)
{
if (n > 1)
bin(n / 2);
cout << n % 2;
}
int main( void )
{
bin(7);
cout << endl;
bin(4);
}
|
C
void bin(unsigned n)
{
if (n > 1)
bin(n / 2);
printf ( "%d" , n % 2);
}
int main( void )
{
bin(7);
printf ( "\n" );
bin(4);
}
|
Java
class GFG {
static void bin( int n)
{
if (n > 1 )
bin(n / 2 );
System.out.print(n % 2 );
}
public static void main(String[] args)
{
bin( 7 );
System.out.println();
bin( 4 );
}
}
|
Python 3
def bin (n):
if n > 1 :
bin (n / / 2 )
print (n % 2 ,end = "")
if __name__ = = "__main__" :
bin ( 7 )
print ()
bin ( 4 )
|
C#
using System;
class GFG {
static void bin( int n)
{
if (n > 1)
bin(n / 2);
Console.Write(n % 2);
}
static public void Main()
{
bin(7);
Console.WriteLine();
bin(4);
}
}
|
PHP
<?php
function bin( $n )
{
if ( $n > 1)
bin( $n /2);
echo ( $n % 2);
}
bin(7);
echo ( "\n" );
bin(4);
?>
|
Method 3: Recursive using bitwise operator
Steps to convert decimal number to its binary representation are given below:
step 1: Check n > 0
step 2: Right shift the number by 1 bit and recursive function call
step 3: Print the bits of number
C++
#include <bits/stdc++.h>
using namespace std;
void bin(unsigned n)
{
if (n > 1)
bin(n >> 1);
printf ( "%d" , n & 1);
}
int main( void )
{
bin(131);
printf ( "\n" );
bin(3);
return 0;
}
|
Java
class GFG {
static void bin(Integer n)
{
if (n > 1 )
bin(n >> 1 );
System.out.printf( "%d" , n & 1 );
}
public static void main(String[] args)
{
bin( 131 );
System.out.printf( "\n" );
bin( 3 );
}
}
|
Python3
def bin (n):
if (n > 1 ):
bin (n >> 1 )
print (n & 1 , end = "")
bin ( 131 )
print ()
bin ( 3 )
|
C#
using System;
public class GFG {
static void bin( int n)
{
if (n > 1)
bin(n >> 1);
Console.Write(n & 1);
}
public static void Main()
{
bin(131);
Console.WriteLine();
bin(3);
}
}
|
PHP
<?php
function bin( $n )
{
if ( $n > 1)
bin( $n >>1);
echo ( $n & 1);
}
bin(131);
echo "\n" ;
bin(3);
|
Method 4: Inbuilt library of Python
Python3
def binary(num):
return int ( bin (num).split( '0b' )[ 1 ])
if __name__ = = "__main__" :
x = 10
binary_x = binary(x)
print (binary_x)
|
https://youtu.be/p0Vyq2_Q_uI
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
This article is compiled by Narendra Kangralkar.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.