一、二进制转十进制:
二进制数: 11100
十进制 1*2^4+1*2^3+1*2^2+0+0
=1*16+1*8+1*4+0+0
=28
十进制数:28
二、十进制转二进制:
十进制数:234
二进制转换过程:
234 /2=117 余数0
117/2=58 余数1
58/2=29 余数0
29/2=14 余数1
14/2=7 余数0
7/2=3 余数1
3/2=1 余数1
2/1=0余数1
需要倒过来 二进制结果就是
二进制数:11101010
三、Java代码实现:
public class Main {
/*
十进制转二进制
*/
public static String toBinary(Integer decimalNumber) {
if (decimalNumber == 0) {
return "0";
}
StringBuilder binary = new StringBuilder();
while (decimalNumber > 0) {
binary.insert(0, decimalNumber % 2); // 取余数,得到最低位的二进制数
decimalNumber /= 2; // 除以2,相当于向右移位
}
return binary.toString();
}
/*
二进制转十进制
*/
public static int toDecimal(String binaryNumber) {
int decimal = 0;
int base = 1;
int length = binaryNumber.length();
for (int i = length - 1; i >= 0; i--) {
if (binaryNumber.charAt(i) == '1') {
decimal += base;
} else if (binaryNumber.charAt(i) != '0') {
throw new IllegalArgumentException("Invalid binary number");
}
base *= 2;
}
return decimal;
}
public static void main(String[] args) {
String binary = toBinary(234);
System.out.println("二进制:" + binary);
System.out.println("十进制:" + toDecimal(binary));
}
}