如何在Java中将二进制转换为十进制?

时间:2020-02-23 14:33:57  来源:igfitidea点击:

从那时起,我们就知道计算机能够理解二进制语言,毫无疑问,我们每个人都对将二进制数转换为十进制,八进制和十六进制表示怀疑。
嗯,在需要将数百个数字从机器语言解码为人类解释语言的环境中,几乎无法手动完成。
因此,我们可以编写一个简单的代码来说明如何在Java中将二进制转换为十进制。

从二进制到十进制的数学转换

这个想法很简单。
我们只需要从右侧提取二进制数的数字并将其乘以2的幂即可。
然后,我们必须将所有值相加以获得所需的十进制数。
请参考下图:

既然我们已经了解了二进制到十进制数字的数学转换,那么让我们了解如何为它编写代码。

在Java中将二进制转换为十进制数

要将Java中的二进制数转换为十进制数,可以使用Integer.parseInt()方法或者自定义逻辑。
因此,让我们一个一个地研究它们中的每个。
从Integer.parseInt()方法开始:

Interger.parseInt()方法

此方法用于将字符串转换为具有给定基数的整数。
它来自Integer类,此方法的语法如下:

public static int parseInt(String s,int radix)

使用Integer.parseInt()的Java程序

我们可以使用两种方式使用Integer.parseInt()编写Java程序。
第一种方法是在程序本身中提及二进制数,第二种方法是要求用户输入二进制数。

在程序本身中提及二进制数
package sampleprogram;
public class ConvertBinaryToDecimal {
public static void main(String args[]){
String binarynumber="10101";
int decimalnumber=Integer.parseInt(binarynumber,2);
System.out.println(decimalnumber);
}
}

如果要在代码本身中提及多个二进制数,则可以通过以下方式提及:

package sampleprogram;
public class ConvertBinaryToDecimal {
public static void main(String args[]){
System.out.println(Integer.parseInt("1110",2));
System.out.println(Integer.parseInt("0010",2));
System.out.println(Integer.parseInt("1010",2));
System.out.println(Integer.parseInt("0110",2));
System.out.println(Integer.parseInt("1101",2));
}
}
要求用户输入二进制数

要使用户输入二进制数,必须导入Scanner类。
Scanner类主要用于获取用户输入,它属于java.util包。

package sampleprogram;
import java.util.Scanner;
public class ConvertBinaryToDecimal {
public static void main(String args[]){
Scanner BinaryInput = new Scanner( System.in );
System.out.print("Enter the Binary Number - ");
String BinaryNumber =BinaryInput.nextLine();
System.out.println("Decimal Number- "+Integer.parseInt(BinaryNumber,2));
}
}

好吧,伙计们,这是关于使用Integer.parseInt()方法编写Java程序的。
现在,在本文的下一个有关在Java中将二进制转换为十进制的文章中,让我们看看如何编写一个不使用Integer.parseInt()方法将二进制转换为十进制数字的Java程序。

使用自定义逻辑的Java程序

要编写有关如何在不使用Integer.parseInt()方法的情况下将二进制数转换为十进制数的Java程序,可以通过在代码本身中提及二进制数或者通过接受用户输入来编写代码。

在程序本身中提及二进制数

package sampleprogram;
public class ConvertBinaryToDecimal {
public static int retrieveDecimal(int binarynumber){
int decimalnumber = 0;
int power = 0;
while(true)
{
if (binarynumber == 0)
{
break;
}
else
{
int temp = binarynumber%10;
decimalnumber += temp*Math.pow(2, power);
binarynumber = binarynumber/10;
power++;
}
}
return decimalnumber;
}
public static void main(String args[]){
System.out.println("Decimal value is: "+retrieveDecimal(1110));
System.out.println("Decimal value is: "+retrieveDecimal(0010));
System.out.println("Decimal value is: "+retrieveDecimal(1010));
System.out.println("Decimal value is: "+retrieveDecimal(0110));
System.out.println("Decimal value is: "+retrieveDecimal(1101));
}
}

要求用户输入二进制数

package sampleprogram;
import java.util.Scanner;
class ConvertBinaryToDecimal
{
public static void main(String args[])
{
Scanner binaryinput=new Scanner(System.in);
System.out.println("Enter the binary number-");
int n=binaryinput.nextInt();
int decimalnumber=0,power=0;
while(n!=0)
{
decimalnumber+=((n%10)*Math.pow(2,power));
n=n/10;
power++;
}
System.out.println(decimalnumber);
}
}