Given a decimal number as input, we need to write a program to convert the given decimal number into an equivalent binary number.
Examples:
Input : 7
Output : 111
Input: 33
Output: 100001
Binary-to-decimal conversion is done to convert a number given in the binary system to its equivalent in the decimal number system. A number system is a format to represent numbers in a certain way.
Binary Number System – The binary number system is used in computers and electronic systems to represent data, and it consists of only two digits which are 0 and 1.
Decimal Number System – The decimal number system is the most commonly used number system worldwide, which is easily understandable to people. It consists of digits from 0 to 9.
Methods For Decimal to Binary Conversion
There are numerous approaches to converting the given decimal number into an equivalent binary number in Java. A few of them are listed below.
- Using Arrays
- Using Bitwise Operators
- Using Math.pow() Function (Without using arrays)
1. Using Arrays
Algorithm
- Store the remainder when the number is divided by 2 in an array.
- Divide the number by 2
- Repeat the above two steps until the number is greater than zero.
- Print the array in reverse order now.
The below diagram shows an example of converting the decimal number 17 to an equivalent binary number.
Java Program to Convert Decimal Number to Binary Using Arrays
Java
import java.io.*;
class GFG
{
static void decToBinary( int n)
{
int [] binaryNum = new int [ 1000 ];
int i = 0 ;
while (n > 0 )
{
binaryNum[i] = n % 2 ;
n = n / 2 ;
i++;
}
for ( int j = i - 1 ; j >= 0 ; j--)
System.out.print(binaryNum[j]);
}
public static void main (String[] args)
{
int n = 17 ;
System.out.println( "Decimal - " + n);
System.out.print( "Binary - " );
decToBinary(n);
}
}
|
Output
Decimal - 17
Binary - 10001
The complexity of the above method:
Time Complexity: O(log2(n))
Auxiliary Space: O(1000)
2. Using Bitwise Operators
We can use bitwise operators to do the above job.
Note – Bitwise operators work faster than arithmetic operators used above.
Java Program to Convert Decimal Number to Binary Using Bitwise Operators
Java
class gfg {
public void decToBinary( int n)
{
for ( int i = 31 ; i >= 0 ; i--) {
int k = n >> i;
if ((k & 1 ) > 0 )
System.out.print( "1" );
else
System.out.print( "0" );
}
}
}
class geek {
public static void main(String[] args)
{
gfg g = new gfg();
int n = 32 ;
System.out.println( "Decimal - " + n);
System.out.print( "Binary - " );
g.decToBinary(n);
}
}
|
Output
Decimal - 32
Binary - 00000000000000000000000000100000
The complexity of the above method:
Time Complexity: O(1)
Auxiliary Space: O(1)
3. Using Math.pow() method (Without using Arrays)
Decimal to binary conversion can also be done without using arrays.
Java Program to Convert Decimal Number to Binary Using Math.pow() Method
Java
import java.io.*;
class GFG {
static int decimalToBinary( int N)
{
int B_Number = 0 ;
int cnt = 0 ;
while (N != 0 ) {
int rem = N % 2 ;
double c = Math.pow( 10 , cnt);
B_Number += rem * c;
N /= 2 ;
cnt++;
}
return B_Number;
}
public static void main(String[] args)
{
int N = 17 ;
System.out.println( "Decimal - " + N);
System.out.print( "Binary - " );
System.out.println(decimalToBinary(N));
}
}
|
Output
Decimal - 17
Binary - 10001
The complexity of the above method
Time Complexity: O(log n)
Auxiliary Space: O(1)
Steps for Conversion
- Initialize a decimal number to 10.
- Call the decimalToBinary() method with the decimal number as the argument.
- Inside the decimalToBinary() method, initialize variables remainder, quotient, and binaryNum.
- While the quotient is greater than 0, do the following:
a. Compute the remainder by taking the modulus of the quotient with 2.
b. Append the remainder to the beginning of the binaryNum string.
c. Update the quotient by dividing it by 2.
- Return the binaryNum string.
- Print the decimal number and the binary representation of the number.
Java
public class GFG {
public static void main(String[] args)
{
int decimal = 10 ;
String binary = decimalToBinary(decimal);
System.out.println( "Decimal: " + decimal);
System.out.println( "Binary: " + binary);
}
public static String decimalToBinary( int n)
{
int remainder, quotient = n;
String binaryNum = "" ;
while (quotient > 0 ) {
remainder = quotient % 2 ;
binaryNum
= Integer.toString(remainder) + binaryNum;
quotient = quotient / 2 ;
}
return binaryNum;
}
}
|
Output
Decimal: 10
Binary: 1010
The complexity of the above method
Time Complexity: O(log n)
Auxiliary Space: O(log n)
Please refer complete article on Program for Decimal to Binary Conversion for more details!
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
03 Aug, 2023
Like Article
Save Article