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