有大牛说用位移运算做,我没想出怎么个原理,我是按权值循环乘以7算的

解决方案 »

  1.   

    你的输入数据是什么格式的?
    可以参考2个方法
    Integer.parseInt(string,radix) 根据radix(进制)转换文本为数据
    Integer.toString(int,radix) 根据radix(进制)输出数字的N进制格式
      

  2.   

    给你一个16进制转10进制的。你看看算法思想public static int toTen(String expression){
    char []ch = expression.toCharArray();
    int sum = 0;
    for(int i = 0;i < ch.length;i++){
    char c = ch[ch.length-1-i];
    int value = Character.digit(c, 16);
    sum += value * (1<<(4*i));
    }
    return sum;
    }
      

  3.   


    static String conversion(String inValue,int inRadix,int outRadix)throws NumberFormatException{
    return Integer.toString(Integer.parseInt(inValue,inRadix),outRadix);
    }
      

  4.   


    输入是7进制形式的字符串,返回值是int型的10进制整数
      

  5.   

    移位?
    n*7 == n*(8-1) == n*8 - n == n<<3 - n
    这样算不算移位运算?public static int seven2ten(String src) {
        int num = 0;
        char[] c = src.toCharArray();
        for (int i=0; i<c.length; i++) {
            num = (num << 3) - num;  //也就是 num *= 7; 
            num += (c[i]-'0');
        }
        return num;
    }System.out.println(seven2ten("123"));