Java 整数到二进制的转换

原文:https://www.studytonight.com/java-examples/java-integer-to-binary-conversion

在本文中,我们将在 Java 中讨论整数到二进制的转换。通常,有两种方法可以将整数转换为二进制数。

  • toBinaryString()
  • 数学长除法

首先我们将学习toBinaryString()方法。这是一个Integer类方法,在将整型转换为二进制后返回一个字符串。

public static String toBinaryString(int val)

这里val 是我们要转换成二进制数系统的值。然后这个方法将返回字符串格式的二进制值。

示例:使用 toBinaryString()方法进行 Int 到二进制的转换

在下面的例子中,我们正在调用Integer.toBinaryString()方法,int 将以 String 格式返回一个二进制值。

import java.lang.Math; 
public class StudyTonight 
{ 
    public static void main(String[] args)   
    { 
        int val=183;
        System.out.println("Value in binary system is: " + Integer.toBinaryString(val)); 
    } 
}

二进制中的值为:10110111

除了这个内置方法,我们使用长除法从头开始实现。

示例:使用长除法进行整数到二进制的转换

这种方法完全是数学上的,这里我们通过考虑 32 位二进制表示来声明一个大小为 32 的 int 数组。每次我们将一个数字除以 2,并将提醒存储在 int 数组中。最后,为了得到结果,我们以相反的方式遍历它。

public class StudyTonight 
{ 
    public static void main(String[] args)   
    { 
        int val=183;
        int num[] = new int[32];
        int pos=0;
        while(val>0)
        {
            num[pos++]=val%2;
            val=val/2;
        }
        System.out.print("Value in binary system is:");
        for(int i=pos-1; i>=0; i--)
        {
            System.out.print(num[i]);
        }
    } 
}

二进制数值为:10110111

在上面的方法中,我们可以看到每次我们使用 mod 操作计算提醒时都要进行长除法运算,而且这些运算与位操作相比成本很高,我们可以使用下面给出的位操作进行相同的运算。

示例:使用位操作的整数到二进制转换

使用右移位运算符,我们可以将任何值减半,由于我们是在位级别上工作,因此这是一个非常低成本的操作,其余的事情与上面示例中提到的相同。最后,我们使用反转存储在 StringBuilder 对象中的值来打印值,以使其正确地以二进制形式显示。

public class StudyTonight 
{ 
    public static void main(String[] args)   
    { 
        int val = 183;
        StringBuilder binary = new StringBuilder(32);
        while (val > 0 ) {
            binary.append( val % 2 );
            val >>= 1;
        }
        binary.reverse().toString();
        System.out.print("Value in binary system is:"+binary.reverse().toString());
    } 
}

二进制数值为:11101101

java.lang.Integer类 bu 中有一个更有趣的方法,使用Integer.toString()方法,该方法接受第一个参数作为数字,第二个参数作为radix (这里基数是数字系统的基数),对于二进制数可以是 2,对于八进制数可以是 8,对于十六进制数可以是 16,对于二进制数可以是 2

Integer.toString(int val, int radix)

示例:使用 Integer.toString()进行整数到二进制的转换

Integer.toString()是一种内置方法,它将第一个参数作为我们要转换的值,将第二个参数作为基数,基数也称为数字系统的基数。在我们的例子中,我们对二进制数感兴趣,所以我们传递 2,它将以字符串格式返回给定值的二进制数。

public class StudyTonight 
{ 
    public static void main(String[] args)   
    { 
        int val = 183;
        System.out.print("Value in binary system is:"+Integer.toString(val, 2));
    } 
}

二进制数值为:10110111

结论:

在 java 中,我们可以使用两种方法将 int 转换为二进制:第一种方法非常简单,我们使用Integer 类中的 toBinaryString() 方法,这将产生一个二进制数的字符串,该字符串相当于作为参数提供给该函数的数。在第二种方法中,我们每次对一个数进行 2 的长除法并存储进位,这是一种将 int 转换为二进制数的纯数学方法。