当前位置: 代码迷 >> 综合 >> Java 二进制和十进制互转,二进制和BitSet互转
  详细解决方案

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

热度:23   发布时间:2023-09-15 06:37:59.0

/**
* 二进制转十进制
*
* @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;}