如何将int中的错误修复为二进制字符串

时间:2015-10-09 20:40:55

标签: java

我正在尝试将整数转换为二进制数字符串,我为它编写了代码并进行了编译。但是,我似乎无法为它编写测试文件,我不断收到错误。我应该写一个单独的测试文件来输出我的答案,但是我不知道该怎么做。我是Java的新手。任何人都可以帮我弄清楚如何解决我得到的错误?

这是我转换它的java代码。

public String binaryNumber( int j)       
{

    String n = "";
    String a = "";


    do
    {
        a += (j % 2);
        j = j/2;         

    }while (j != 0);

    for(int r = (a.length() - 1); r >=0; r--)
     {
        n += a.charAt(r);
     }

    return n;
}

 public String getN {return n;}

这是我的测试代码:

public class BinaryNumberTest
{
  public static void main(String[] args)
   {
    System.out.println("Result: " + binaryNumber(45));
   }

 }

3 个答案:

答案 0 :(得分:1)

如果您使用binaryNumber(int j)方法static,您的代码似乎是正确的。因为您无法访问静态上下文中的非静态方法。

但是,您可以使用Integer.toBinaryString(x)轻松执行任务。此外,您可以使用Integer.toString(x,8)转换八进制,Integer.toString(x,2)转换为二进制,Integer.toString(x,16)转换为十六进制,Integer.toString(x,n)转换为n base。

答案 1 :(得分:0)

首先,由于binaryNumber不使用任何实例成员,因此可以(读取:应该)定义为static。其次,您需要通过类名引用它,或者静态导入它:

System.out.println("Result: " + BinaryNumber.binaryNumber(45));

答案 2 :(得分:0)

您应该使用binaryNumber方法static,因为您没有使用实例字段。

public class BinaryNumber 
{
    public static String binaryNumber( int j)       
    {

        String n = "";
        String a = "";


        do
        {
            a += (j % 2);
            j = j/2;         

        }while (j != 0);

        for(int r = (a.length() - 1); r >=0; r--)
         {
            n += a.charAt(r);
         }

        return n;
    }
}

测试:

public class BinaryNumberTest
{
  public static void main(String[] args)
   {
    System.out.println("Result: " + BinaryNumber.binaryNumber(45));
   }

 }