将十进制转为二进制:正整数通常采用“除 2 取余,逆序排列”法。编写函数,实现将一个十进制正整数转化成一个二进制数。
时间: 2023-05-04 16:00:48 浏览: 221
这道题是关于将十进制数转为二进制数的问题。可以使用“除 2 取余,逆序排列”的方法来求解,也可以使用“除 2 取余,顺序排列,然后倒序取出”的方法来求解。编写一个函数,实现将一个十进制数转化为一个二进制数。
相关问题
怎么用python编写函数实现将十进制正整数转化为r进制整数(r=2~9)
以下是一个Python函数,可以将十进制正整数转化为r进制整数(r=2~9):
```python
def decimal_to_r(decimal, r):
if decimal == 0:
return '0'
digits = []
while decimal > 0:
digits.append(str(decimal % r))
decimal //= r
return ''.join(digits[::-1])
```
使用方法:
```python
decimal_to_r(123, 2) # 将十进制整数123转化为二进制,结果为'1111011'
decimal_to_r(123, 8) # 将十进制整数123转化为八进制,结果为'173'
decimal_to_r(123, 10) # 将十进制整数123转化为十进制,结果为'123'
decimal_to_r(123, 16) # 将十进制整数123转化为十六进制,结果为'7b'
```
用c语言编写一个把十进制正整数分别转换为二、八、十六进制数输出的递归函数
在C语言中,可以创建一个递归函数来实现十进制到二进制、八进制和十六进制的转换。下面是一个简单的递归函数示例,用于转换十进制整数到其他基数表示:
```c
#include <stdio.h>
#include <string.h>
// 十进制转其他进制(base)的辅助函数
char* decimal_to_other(int num, int base, char result[]) {
if (num == 0) {
// 结束条件:当数字为0时,返回结果数组
return result;
}
// 递归部分:计算当前位的值并添加到结果数组
result[strlen(result)] = (num % base) + '0'; // 保持字符在0-9范围内
result = decimal_to_other(num / base, base, result);
return result;
}
void convert_decimal(int n, int radix[], int size) {
// 根据选择的基数调用相应的转换函数
switch (radix[0]) {
case 2: printf("二进制: ");
result[0] = '\0';
printf("%s\n", decimal_to_other(n, 2, result));
break;
case 8: printf("八进制: ");
result[0] = '\0';
printf("%s\n", decimal_to_other(n, 8, result));
break;
case 16: printf("十六进制: ");
result[0] = '\0';
printf("%s\n", decimal_to_other(n, 16, result));
break;
}
}
int main() {
int radix[] = {2, 8, 16}; // 进制转换选项
int size = sizeof(radix) / sizeof(radix[0]); // 获取选项数量
printf("请选择转换类型:1:十进制->二进制 2:十进制->八进制 3:十进制->十六进制 \n");
for (int i = 0; i < size; ++i) {
printf("%d: %d-%s\n", i+1, radix[i], radix[i] == 2 ? "二" : (radix[i] == 8 ? "八" : "十六")); // 显示选项及其对应的基数名称
}
scanf("%d", &n); // 输入要转换的十进制数
convert_decimal(n, radix, size); // 调用转换函数
return 0;
}
```
这个程序首先让用户选择要转换的基数,然后输入十进制数,最后通过`convert_decimal`函数递归地进行转换。
阅读全文