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