There are two following ways to convert binary number to decimal number:
1) Using Integer.parseInt() method of Integer class.
2) Do conversion by writing your own logic without using any predefined methods.
Method 1: Binary to Decimal conversion using Integer.parseInt() method
The Integer.parseInt() method accepts two arguments, first argument is the string which you want to parse and the second argument is the radix. Here, we provided the radix as 2, because we are converting a binary number. The radix is the base of the number we are converting, for example: radix is 8 for octal number conversion, for hex to decimal radix 16 and so on.
import java.util.Scanner; class BinaryToDecimal { public static void main(String args[]){ Scanner input = new Scanner( System.in ); System.out.print("Enter a binary number: "); String binaryString =input.nextLine(); System.out.println("Output: "+Integer.parseInt(binaryString,2)); } }
Output:
Enter a binary number: 1101 Output: 13
Method 2: Conversion without using parseInt
Here, we are not using the parseInt()
method. We have created a user defined method BinaryToDecimal()
, where we have written the logic for binary to decimal conversion.
public class Details { public int BinaryToDecimal(int binaryNumber){ int decimal = 0; int p = 0; while(true){ if(binaryNumber == 0){ break; } else { int temp = binaryNumber%10; decimal += temp*Math.pow(2, p); binaryNumber = binaryNumber/10; p++; } } return decimal; } public static void main(String args[]){ Details obj = new Details(); System.out.println("110 --> "+obj.BinaryToDecimal(110)); System.out.println("1101 --> "+obj.BinaryToDecimal(1101)); System.out.println("100 --> "+obj.BinaryToDecimal(100)); System.out.println("110111 --> "+obj.BinaryToDecimal(110111)); } }
Output:
110 --> 6 1101 --> 13 100 --> 4 110111 --> 55
rafikh says
Please create notes for struts and other framework
jaga says
I was about to know the Method 2 program .How to add or sum all the values that are displayed in console or command prompt
eg:
110 –> 6
1101 –> 13
100 –> 4
110111 –> 55 i should get the decimal value at last
esousa says
Thanks dude. This help-me a lot…..great job.
Dimitris says
You need to cast (int) before Math.pow, as java returns a double() for this expression
Dimitris says
Sorry , i was eager not to see the int temp inside the if. Well done mate :))
George says
I wonder how to deal with negative powers in the input.
Example if you want to convert the decimal 0.001 to binary.