用Java实现二进制和十进制之间的转换(要求使用循环)
时间: 2023-05-28 19:05:22 浏览: 221
[JAVA]二进制字符串转十进制带异常抛出
以下是Java代码实现二进制和十进制之间的转换,包括使用循环的方法:
```java
import java.util.Scanner;
public class BinaryDecimalConverter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择转换方式:");
System.out.println("1. 二进制转十进制");
System.out.println("2. 十进制转二进制");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("请输入二进制数:");
String binaryStr = scanner.next();
int decimal = binaryToDecimal(binaryStr);
System.out.println("转换结果为:" + decimal);
break;
case 2:
System.out.println("请输入十进制数:");
int decimalNum = scanner.nextInt();
String binary = decimalToBinary(decimalNum);
System.out.println("转换结果为:" + binary);
break;
default:
System.out.println("输入错误!");
break;
}
scanner.close();
}
/**
* 二进制转十进制
* @param binaryStr 二进制字符串
* @return 十进制数
*/
public static int binaryToDecimal(String binaryStr) {
int decimal = 0;
for (int i = binaryStr.length() - 1, j = 0; i >= 0; i--, j++) {
int binaryDigit = binaryStr.charAt(i) - '0';
decimal += binaryDigit * Math.pow(2, j);
}
return decimal;
}
/**
* 十进制转二进制
* @param decimal 十进制数
* @return 二进制字符串
*/
public static String decimalToBinary(int decimal) {
StringBuilder binary = new StringBuilder();
while (decimal > 0) {
int remainder = decimal % 2;
binary.insert(0, remainder);
decimal /= 2;
}
return binary.toString();
}
}
```
使用循环的关键在于,二进制转十进制时,需要从低位到高位遍历二进制数的每一位,每一位的权值是 2 的幂次方;十进制转二进制时,需要不断地将十进制数除以 2 并记录余数,直到商为 0。
阅读全文