java将十进制转换为任何二进制位

java将十进制转换为任何二进制位,java,converter,Java,Converter,我正在做一个将十进制数转换成二进制数的项目。但我有一个问题,如何将任何输入的数字转换为二进制(我使用的是数组),下面是我的代码: public void Decimal2Binary(int a) { int result []=new int[8]; for (int i = 7;i >=0; i--,a/=2) { result[i]=a%2; } 我不需要它仅用于8位二进制结果,但我需要它用于任何大小。使用此函数Integer.toBinar

我正在做一个将十进制数转换成二进制数的项目。但我有一个问题,如何将任何输入的数字转换为二进制(我使用的是数组),下面是我的代码:

    public void Decimal2Binary(int a)
{
    int result []=new int[8];
    for (int i = 7;i >=0; i--,a/=2) {
        result[i]=a%2;
}

我不需要它仅用于8位二进制结果,但我需要它用于任何大小。

使用此函数Integer.toBinaryString(int)。。。 你为什么希望它是一个数组?
它不能是数组列表或大小数。

您实际上没有指定输出,但这里是

假设未签名(看起来像是这样)

如果您需要处理负数,我将使用&运算符进行位比较-您也可以使用>>进行除法,但我将把优化留给编译器,以使源代码更具可读性


显然,您可以将其更改为任何形式的append

为什么不将其作为参数传递?
Integer.tobinarysting()
?与、、和(除此之外)的副本不太清楚。在强类型语言中,任何大小都毫无意义,因为基本类型由JLS严格定义。这里没有小数。一切都已经是二进制的了。你真正要做的是分离位。如果你真的想要它作为一个字符串输出,我建议使用标准功能,但是如果你想要以任何形式控制位,这就给了你控制权。
StringBuilder result = new StringBuilder();
while(a > 0) {
    result.append(a % 2);
    a = a / 2; // This will round down automatically. ;)
}