如题,要求是从000000开始,到111111结束,并且每次都能够取出其位值,例如:111000,则前三位值a=b=c=1;后三位值为d=e=f=0.然后能够将这abcdef转换成int类型

解决方案 »

  1.   

    这不就是10进制和2进制的互相转换吗?public class Test3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String a = "10110";
    String b = "10001";
    System.out.println(binaryAdd(a, b));
    } /**
     * 2进制加法器
     * 
     * @param a
     * @param b
     * @return
     */
    public static String binaryAdd(String a, String b) {
    return toBinaryString(toInteger(a) + toInteger(b));
    } /**
     * 10进制转2进制
     * 
     * @param i
     * @return
     */
    public static String toBinaryString(int i) {
    return Integer.toBinaryString(i);
    } /**
     * 2进制转10进制
     * 
     * @param binary
     * @return
     */
    public static int toInteger(String binary) {
    char[] c = binary.toCharArray();
    int sum = 0;
    for (int i = 0; i < c.length; i++) {
    sum += Integer.parseInt(new String(c, i, 1))
    * Math.pow(2, c.length - i);
    }
    return sum;
    }
    }
      

  2.   

    修改一下
    public class Test3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String a = "10110";
    String b = "10001";
    System.out.println(binaryAdd(a, b));
    } /**
     * 2进制加法器
     * 
     * @param a
     * @param b
     * @return
     */
    public static String binaryAdd(String a, String b) {
    return toBinaryString(toInteger(a) + toInteger(b));
    } /**
     * 10进制转2进制
     * 
     * @param i
     * @return
     */
    public static String toBinaryString(int i) {
    return Integer.toBinaryString(i);
    } /**
     * 2进制转10进制
     * 
     * @param binary
     * @return
     */
    public static int toInteger(String binary) {
    char[] c = binary.toCharArray();
    int sum = 0;
    for (int i = 0; i < c.length; i++) {
    sum += Integer.parseInt(new String(c, i, 1))
    * Math.pow(2, c.length - i-1);
    }
    return sum;
    }
    }
      

  3.   

    修改一个 bugpublic class Test3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String a = "10110";
    String b = "10001";
    System.out.println(binaryAdd(a, b));
    } /**
     * 2进制加法器
     * 
     * @param a
     * @param b
     * @return
     */
    public static String binaryAdd(String a, String b) {
    return toBinaryString(toInteger(a) + toInteger(b));
    } /**
     * 10进制转2进制
     * 
     * @param i
     * @return
     */
    public static String toBinaryString(int i) {
    return Integer.toBinaryString(i);
    } /**
     * 2进制转10进制
     * 
     * @param binary
     * @return
     */
    public static int toInteger(String binary) {
    char[] c = binary.toCharArray();
    int sum = 0;
    for (int i = 0; i < c.length; i++) {
    sum += Integer.parseInt(new String(c, i, 1))
    * Math.pow(2, c.length - i-1);
    }
    return sum;
    }
    }
      

  4.   

    不知道你是不是这个意思,既然2进制和10进制都可以互相转换了,那么很多2进制的东西都可以用10进制的方法来解决,
    public class Test3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String min = "000000";
    String max = "111111";
    char[] c = null;
    for (int i = toInteger(min); i <= toInteger(max); i++) {
    c = String.format("%06d", new Integer(toBinaryString(i)))
    .toCharArray(); System.out.println("a=" + c[5] + "\tb=" + c[4] + "\tc=" + c[3]
    + "\td=" + c[2] + "\te=" + c[1] + "\tf=" + c[0]);
    // System.out.println("abcdef is\t"+i); }
    } /**
     * 2进制加法器
     * 
     * @param a
     * @param b
     * @return
     */
    public static String binaryAdd(String a, String b) {
    return toBinaryString(toInteger(a) + toInteger(b));
    } /**
     * 10进制转2进制
     * 
     * @param i
     * @return
     */
    public static String toBinaryString(int i) {
    return Integer.toBinaryString(i);
    } /**
     * 2进制转10进制
     * 
     * @param binary
     * @return
     */
    public static int toInteger(String binary) {
    char[] c = binary.toCharArray();
    int sum = 0;
    for (int i = 0; i < c.length; i++) {
    sum += Integer.parseInt(new String(c, i, 1))
    * Math.pow(2, c.length - i - 1);
    }
    return sum;
    }
    }