Java 二进制和十进制互转,二进制和BitSet互转

/**
* 二进制转十进制
*
* @param binaryNumber
* @return
*/
public static int binaryToDecimal(int binaryNumber) {

    int decimal = 0;
    int p = 0;
    while (true) {
        if (binaryNumber == 0) {
            break;
        } else {
            int temp = binaryNumber % 10;
            decimal += temp * Math.pow(2, p);
            binaryNumber = binaryNumber / 10;
            p++;
        }
    }
    return decimal;
}

/**
 * 十进制转二进制
 * 
 * @param n
 * @return
 */
public static String decimalToBinary(int n) {
    String str = "";
    while (n != 0) {
        str = n % 2 + str;
        n = n / 2;
    }
    return str;
}

/** 
 * @Description: 十进制转换成二进制 () 
 * @param decimalSource 
 * @return String 
  */  
 public static String decimalToBinary(BigInteger decimalSource) {  

// BigInteger bi = new BigInteger(String.valueOf(decimalSource)); //转换成BigInteger类型
return decimalSource.toString(2); //参数2指定的是转化成X进制,默认10进制
}

 /** 
 * @Description: 二进制转换成十进制  
 * @param binarySource 
 * @return int 
  */  
 public static BigInteger binaryToDecimal(String binarySource) {  
     BigInteger bi = new BigInteger(binarySource, 2);    //转换为BigInteger类型  

// return Integer.parseInt(bi.toString()); //转换成十进制
return bi; //转换成十进制
}

    /**
     * BitSet转二进制
     * 
     * @param bitSet
     * @return
     */
    public static String bitSetToBinary(BitSet bitSet) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < bitSet.length(); i++) {
            if (bitSet.get(i)) {
                stringBuilder.append("1");
            } else {
                stringBuilder.append("0");
            }
        }
        return stringBuilder.toString();
    }

    /**
     * 二进制转BitSet
     * 
     * @param binary
     * @return
     */
    public static BitSet binaryToBitSet(String binary) {
        BitSet bitSet = new BitSet();
        for (int i = 0; i < binary.length(); i++) {
            String c = String.valueOf(binary.charAt(i));
            if ("1".equals(c)) {
                bitSet.set(i, true);
            }
        }
        return bitSet;
    }

你可能感兴趣的:(Java 二进制和十进制互转,二进制和BitSet互转)