首页 > 代码库 > 10进制转换成8进制
10进制转换成8进制
package cast;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
public class Cast {
//测试
public static void main(String[] args) {
int a = Cast.castNum(100);
System.out.println(a);
}
//10进制转换成8进制
public static int castNum(int key){
List<Integer> lists = new LinkedList<Integer>();
int num = 0;
boolean flag = true;
if(key<0){
return -1;//若是负值则返回-1
}else if(key<8){//若是在0-8之间直接返回当前数
return key;
}
while(flag){//若是大于等于8则进行转换
num = key%8;//取余
lists.add(num);//添加进集合
key = key/8;//取整数商
if(key==0){//当k=0时,跳出循环
flag = false;
}
}
if(!flag){//跳出循环就进行转换
Collections.reverse(lists);//集合反转
StringBuffer sb = new StringBuffer();
for(int l:lists){
sb.append(l);//转换成StringBuffer
}
key = Integer.parseInt(new String(sb));//转换成int型
}
return key;
}
}
10进制转换成8进制