其实想这个的时候,我是想进行归纳推广的。现在我用现成的方法做,Java调用方法。


Scanner scan=new Scanner(System.in);
int n;//用户输入的十进制数
n=scan.nextInt();
String str=Integer.toOctalString(n);
System.out.println(str);

既然学过C语言cpp,为什么不重新造轮子理解呢?我们来造轮子。

这里我要说的是:除基取余法。二进制叫做除2取余法,万一我不求二进制呢对吧,所以这里强调基数。

Scanner scan = new Scanner(System.in);
int number;//用户输入数
int i=0;//初始化
int j;//循环变量
int array[]=new int[10];//用来存余数
number=scan.nextInt();
do{
i++;
array[i]=number%8;//存余数
number=number/8;
}while(number!=0);
/*逆序输出*/
for(j=i;j>0;j--){
System.out.print(array[j]);
}

这里我们既然知道了如何将十进制转化为八进制,那么为啥不转化任意进制呢?

其实我们只需要设置两个读入变量,比如将8改为其他,这样就可以完成任意进制的转换了。