Java编写递归方法将10进制数转换成2进制数
时间: 2024-10-08 21:13:27 浏览: 20
在Java中,你可以通过递归的方式来编写一个函数将十进制数转换为二进制数。递归的基本思路是将大数值不断除以2,直到商为0,然后将每次的余数(从下往上)连接起来就形成了二进制表示。下面是一个简单的例子:
```java
public class Main {
public static void main(String[] args) {
int decimalNumber = 10; // 需要转换的十进制数
System.out.println(binaryConversion(decimalNumber));
}
// 递归方法,将十进制转二进制
private static String binaryConversion(int number) {
if (number == 0) { // 递归结束条件,当数字变为0时返回""
return "";
} else {
// 将当前位的余数添加到结果字符串前,并继续对整数除以2
return binaryConversion(number / 2) + String.valueOf(number % 2);
}
}
}
```
当你运行这个程序,`binaryConversion(10)`会输出"1010",这是10的二进制形式。
相关问题
将10进制数转换成n进制数c语言
以下是将十进制数转换成 n 进制数的 C 语言代码:
```
#include<stdio.h>
void convert(int num, int base) {
int rem;
if (num == 0) {
return;
}
else {
rem = num % base;
convert(num / base, base);
if (rem < 10) {
printf("%d", rem);
} else {
printf("%c", rem - 10 + 'A');
}
}
}
int main() {
int num, base;
printf("Enter the number to convert: ");
scanf("%d", &num);
printf("Enter the base to convert to: ");
scanf("%d", &base);
printf("The number %d in base %d is: ", num, base);
convert(num, base);
printf("\n");
return 0;
}
```
在此代码中,`convert` 函数以递归方式将十进制数转换为 n 进制数。参数 `num` 是要转换的十进制数,参数 `base` 是要转换为的进制数。在函数中,我们首先计算 `num` 除以 `base` 的商并递归调用 `convert` 函数。然后,在打印数字的每个位数时,我们使用 `printf` 函数将余数打印为数字或字母(如果余数大于或等于 10)。最后,在 `main` 函数中,我们从用户获取要转换的数字和目标进制,并将结果打印到屏幕上。
希望能对你有所帮助!
用递归方法将十进制转换为二进制
将十进制数转换为二进制可以使用递归方法,具体步骤如下:
1. 将十进制数除以2,得到商和余数。
2. 将余数作为二进制数的最低位,将商作为新的十进制数。
3. 重复步骤1和步骤2,直到商为0为止。
下面是一个示例的递归函数实现:
```python
def decimal_to_binary(n):
if n == 0:
return 0
else:
return (n % 2) + 10 * decimal_to_binary(n // 2)
```
这个函数接受一个十进制数n作为参数,并返回对应的二进制数。在函数内部,首先判断n是否为0,如果是则返回0,否则返回`(n % 2) + 10 * decimal_to_binary(n // 2)`。这里`(n % 2)`表示当前位的余数,`10 * decimal_to_binary(n // 2)`表示剩余位的二进制表示。
例如,将十进制数13转换为二进制:
```python
print(decimal_to_binary(13)) # 输出: 1101
```