Java递归打印二进制
时间: 2023-08-29 22:12:24 浏览: 49
以下是Java递归打印二进制的代码:
```
public class BinaryPrint {
public static void main(String[] args) {
int n = 10;
printBinary(n);
}
public static void printBinary(int n) {
if (n < 2) {
System.out.print(n);
} else {
printBinary(n / 2);
System.out.print(n % 2);
}
}
}
```
在上述示例中,我们使用`printBinary()`方法来递归地打印给定数字的二进制表示。如果给定数字小于2,则我们只需将其打印,否则我们将数字除以2并递归调用`printBinary()`方法,直到我们得到小于2的数字。然后我们打印余数。这样,我们就得到了给定数字的二进制表示。在`main()`方法中,我们传递10作为参数,以打印10的二进制表示。输出将是1010。
相关问题
用Java递归调用打印十进制整数的二进制。
可以使用递归的方式来实现将一个十进制整数转换成二进制数的功能。具体实现如下:
```java
public class DecimalToBinary {
public static void main(String[] args) {
int decimal = 10;
System.out.println("十进制数 " + decimal + " 的二进制表示为:");
decimalToBinary(decimal);
}
public static void decimalToBinary(int decimal) {
if (decimal > 0) {
decimalToBinary(decimal / 2);
System.out.print(decimal % 2);
}
}
}
```
这段代码会将十进制整数10转换成二进制数1010,并输出到控制台上。
java利用递归实现进制转换
以下是Java利用递归实现进制转换的代码和解释:
```java
public class DecimalToBase {
public static void main(String[] args) {
int decimal = 123;
int base = 16;
String result = decimalToBase(decimal, base);
System.out.println(decimal + " in base " + base + " is " + result);
}
public static String decimalToBase(int decimal, int base) {
if (decimal == 0) {
return "0";
} else {
int remainder = decimal % base;
String result = "";
if (remainder < 10) {
result = Integer.toString(remainder);
} else {
result = Character.toString((char) ('A' + remainder - 10));
}
return decimalToBase(decimal / base, base) + result;
}
}
}
```
解释:
- `decimalToBase`方法是递归函数,用于将十进制数`decimal`转换为`base`进制数。
- 如果`decimal`为0,则返回字符串"0"。
- 否则,计算`decimal`除以`base`的余数`remainder`,并将其转换为字符串`result`。
- 如果`remainder`小于10,则将其转换为字符串。
- 否则,将其转换为'A'到'F'中的一个字符。
- 最后,将`decimal`除以`base`的商作为新的`decimal`,并将`result`添加到递归调用的结果中。