将二进制、八进制转为十进制java编程
时间: 2023-09-03 08:02:31 浏览: 150
Java编程可以通过使用内置的方法或自定义算法将二进制和八进制转换为十进制。
1. 将二进制转为十进制:
可以使用`Integer.parseInt`方法将二进制字符串转换为十进制整数。例如:
```java
String binaryString = "10101";
int decimal = Integer.parseInt(binaryString, 2);
System.out.println(decimal); // 输出:21
```
在这个例子中,`Integer.parseInt`方法将二进制字符串`"10101"`转换为十进制整数,并将结果赋值给变量`decimal`。
2. 将八进制转为十进制:
与上面的方法类似,可以使用`Integer.parseInt`方法将八进制字符串转换为十进制整数。需要注意的是,八进制的表示方式是以数字0开头。例如:
```java
String octalString = "35";
int decimal = Integer.parseInt(octalString, 8);
System.out.println(decimal); // 输出:29
```
在这个例子中,`Integer.parseInt`方法将八进制字符串`"35"`转换为十进制整数,并将结果赋值给变量`decimal`。
如果你不想使用内置的方法,也可以自定义算法来进行转换,这通常涉及到逐位计算。例如,可以使用以下算法将二进制转换为十进制:
```java
String binaryString = "10101";
int decimal = 0;
int length = binaryString.length();
for (int i = 0; i < length; i++) {
if (binaryString.charAt(i) == '1') {
decimal += Math.pow(2, length - 1 - i);
}
}
System.out.println(decimal); // 输出:21
```
在这个例子中,通过遍历二进制字符串中的每一位,当遇到数字'1'时,根据位数计算出对应的十进制值,并累加到变量`decimal`中。
类似的,你也可以自定义算法将八进制转换为十进制。根据八进制转换为十进制的规则,可以逐位计算,并使用相应的权重进行累加。
无论是使用内置方法还是自定义算法,都可以轻松将二进制和八进制转换为十进制。但记住,在将字符串转为数字时,一定要注意输入的字符串格式是否正确,否则可能会导致运行时异常。
阅读全文