public class TestScale { public static void main(String[] args) {
int a = 26;                    //想要转换的十进制数
int b = 8;                     //想要转换为八进制
MyScale m = new MyScale();
m.change(a, b);
}}class MyScale {
int s[];
int i = 0;
public void change (int a,int b) {
do{
s[i] = (a%b);
a = (a/b);
i++;
}while(a/b!=0);
System.out.println(s);
}
}
为什么总会报错啊
Exception in thread "main" java.lang.NullPointerException
at MyScale.change(TestScale.java:18)
at TestScale.main(TestScale.java:8)

解决方案 »

  1.   

    其实十进制转八进制一句话搞定System.out.println(Integer.toOctalString(26));
      

  2.   

    这个怎么初始化啊
    类似
    int s[] = new int[2];不过你的逻辑也对吧
      

  3.   

    这个怎么初始化啊
    类似
    int s[] = new int[2];不过你的逻辑也对吧
    没有反着输出,不过这样都出问题了,就没有写那个。能在代码上改改吗
      

  4.   

    这个怎么初始化啊
    类似
    int s[] = new int[2];不过你的逻辑也对吧
    没有反着输出,不过这样都出问题了,就没有写那个。能在代码上改改吗
    public class TestScale { public static void main(String[] args) {
    int a = 26; // 想要转换的十进制数
    int b = 8; // 想要转换为八进制
    MyScale m = new MyScale();
    m.change(a, b);
    }
    }class MyScale {
    int s[] = new int[2]; int i = 0; public void change(int a, int b) {
    do {
    s[i] = (a % b);
    a = (a / b);
    i++;
    } while (a != 0);
    for (int i = s.length - 1; i >= 0; i--) {
    System.out.print(s[i]);
    }
    }
    }
    另外因为位数不一定,最好用list型的,不要用数组
      

  5.   

    这个怎么初始化啊
    类似
    int s[] = new int[2];不过你的逻辑也对吧
    没有反着输出,不过这样都出问题了,就没有写那个。能在代码上改改吗
    public class TestScale { public static void main(String[] args) {
    int a = 26; // 想要转换的十进制数
    int b = 8; // 想要转换为八进制
    MyScale m = new MyScale();
    m.change(a, b);
    }
    }class MyScale {
    int s[] = new int[2]; int i = 0; public void change(int a, int b) {
    do {
    s[i] = (a % b);
    a = (a / b);
    i++;
    } while (a != 0);
    for (int i = s.length - 1; i >= 0; i--) {
    System.out.print(s[i]);
    }
    }
    }
    另外因为位数不一定,最好用list型的,不要用数组
    为什么输出的会是[I@6cd9c6e2呢
      

  6.   

    这个怎么初始化啊
    类似
    int s[] = new int[2];不过你的逻辑也对吧
    没有反着输出,不过这样都出问题了,就没有写那个。能在代码上改改吗
    public class TestScale { public static void main(String[] args) {
    int a = 26; // 想要转换的十进制数
    int b = 8; // 想要转换为八进制
    MyScale m = new MyScale();
    m.change(a, b);
    }
    }class MyScale {
    int s[] = new int[2]; int i = 0; public void change(int a, int b) {
    do {
    s[i] = (a % b);
    a = (a / b);
    i++;
    } while (a != 0);
    for (int i = s.length - 1; i >= 0; i--) {
    System.out.print(s[i]);
    }
    }
    }
    另外因为位数不一定,最好用list型的,不要用数组
    为什么输出的会是[I@6cd9c6e2呢我的还是你的代码?你直接print数组,又没重写tostring方法,当然打印的是对象啊。