我正在尝试将整数转换为二进制数字符串,我为它编写了代码并进行了编译。但是,我似乎无法为它编写测试文件,我不断收到错误。我应该写一个单独的测试文件来输出我的答案,但是我不知道该怎么做。我是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));
}
}
答案 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));
}
}