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 转换为二进制数的纯数学方法。