如题: 如何将一个10进制字符串转化成8进制的int类型的数值(0755)

解决方案 »

  1.   

    八进制int只是表现形式,其值就是一个十进制int的值,可以人为的在赋值时采取8进制,或者采用格式输出时表现为8进制形式,也就是说用int来表示8进制是表示不出来的,赋值是你可以用8进制,但系统会自动把其转为10进制而保存,除非你用字符串的形式来表达你的八进制
    如果是字符串,可以采用
    Integer.valueOf(ten_dec).toString(8)
    or
    Integer.toOctalString(Integer.valueOf(ten_dec).intValue()) 
      

  2.   

    用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();
            }
        }
      

  3.   

    对8取余,得到的结果加到string里去,然后在判断长度,(4-对4取余),差多少补多少0
      

  4.   

    两种方式
    一种是调用java的进制转换函数
    另外一种就是自己写实现