Java实现二进制与十进制之间的转换(要求使用循环)
时间: 2023-05-28 12:05:50 浏览: 62
二进制转十进制:
```java
public static int binaryToDecimal(String binary) {
int decimal = 0;
int power = 0;
for (int i = binary.length() - 1; i >= 0; i--) {
int num = Character.getNumericValue(binary.charAt(i));
decimal += num * Math.pow(2, power);
power++;
}
return decimal;
}
```
十进制转二进制:
```java
public static String decimalToBinary(int decimal) {
StringBuilder binary = new StringBuilder();
while (decimal > 0) {
binary.insert(0, decimal % 2);
decimal /= 2;
}
return binary.toString();
}
```
相关问题
用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。
java使用循环将二进制转换十进制
以下是Java代码,使用循环将二进制转换为十进制:
```
import java.util.Scanner;
public class BinaryToDecimal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a binary number: ");
String binaryString = input.nextLine();
int decimal = 0;
int power = 0;
for (int i = binaryString.length() - 1; i >= 0; i--) {
if (binaryString.charAt(i) == '1') {
decimal += Math.pow(2, power);
}
power++;
}
System.out.println("The decimal equivalent of " + binaryString + " is " + decimal);
}
}
```
代码解释:
1. 首先,我们使用Scanner类从用户那里获取二进制字符串。
2. 然后,我们创建一个int类型的变量decimal来存储十进制值,并使用另一个int类型的变量power来存储每个二进制位的权值。
3. 我们使用一个for循环来遍历二进制字符串的每个字符。从字符串的最后一个字符开始,我们检查该字符是否为'1',如果是,则将2的power次方加到decimal变量中。
4. 最后,我们打印出转换后的十进制值。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)