八进制int只是表现形式,其值就是一个十进制int的值,可以人为的在赋值时采取8进制,或者采用格式输出时表现为8进制形式,也就是说用int来表示8进制是表示不出来的,赋值是你可以用8进制,但系统会自动把其转为10进制而保存,除非你用字符串的形式来表达你的八进制 如果是字符串,可以采用 Integer.valueOf(ten_dec).toString(8) or Integer.toOctalString(Integer.valueOf(ten_dec).intValue())
用int应该是做不到的,int是10进制的方式表现的,或者你可以用int数组来一位一位保存。 你要解决这个问题,你自己要知道,你要用个什么样的变量来保存你的0755,用int是不可能了,可以考虑用字符串,或者用字节数组,或用字符数组,给你个思路,你可以借鉴 public static void main(String[] args) { try { int n = 493; String s = String.format("%04o", n); //用字符串保存,并格式为4位的八进制,不够四位前面补0 System.out.println(s); byte[] b = s.getBytes(); //用字节数组保存 for (int i=0; i<b.length; i++) { b[i] -= '0'; System.out.print(b[i]); } System.out.println(); char[] c = s.toCharArray(); //用字符数组保存 for (char cc : c) { System.out.println(cc); } } catch (Throwable e) { e.printStackTrace(); } }
如果是字符串,可以采用
Integer.valueOf(ten_dec).toString(8)
or
Integer.toOctalString(Integer.valueOf(ten_dec).intValue())
你要解决这个问题,你自己要知道,你要用个什么样的变量来保存你的0755,用int是不可能了,可以考虑用字符串,或者用字节数组,或用字符数组,给你个思路,你可以借鉴
public static void main(String[] args) {
try {
int n = 493;
String s = String.format("%04o", n); //用字符串保存,并格式为4位的八进制,不够四位前面补0
System.out.println(s);
byte[] b = s.getBytes(); //用字节数组保存
for (int i=0; i<b.length; i++) {
b[i] -= '0';
System.out.print(b[i]);
}
System.out.println();
char[] c = s.toCharArray(); //用字符数组保存
for (char cc : c) {
System.out.println(cc);
}
} catch (Throwable e) {
e.printStackTrace();
}
}
一种是调用java的进制转换函数
另外一种就是自己写实现