用c语言实现十进制转换任意进制
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下是一个用 C 语言实现将十进制数转换为任意进制的示例代码:
c 复制代码
#include <stdio.h>
void decimalToBase(int decimal, int base) { int remainder; if (decimal == 0) { return; } else { remainder = decimal % base; decimalToBase(decimal / base, base); if (remainder < 10) { printf("%d", remainder); } else { printf("%c", 'A' + remainder - 10); } }
}Hale Waihona Puke int main() { int decimal, base; printf("Enter a decimal number: "); scanf("%d", &decimal); printf("Enter the base: "); scanf("%d", &base); printf("The number in base %d is: ", base); decimalToBase(decimal, base); printf("\n"); return 0;
}
在这个示例中,我们定义了一个递归函数 decimalToBase ,它将十进制数转换为任意进制。 函数接受两个参数: decimal 表示要转换的十进制数, base 表示目标进制。首先,我们通 过递归调用将十进制数除以目标进制,直到十进制数为 0。然后,我们计算余数,并将其打 印出来。如果余数小于 10,则直接打印数字;如果余数大于等于 10,则将其转换为对应的 字母(A 表示 10,B 表示 11,以此类推)。 在 main 函数中,我们从用户输入获取要转换的十进制数和目标进制,并调用 decimalToBase 函数进行转换。最后,我们打印出转换后的结果。 请注意,这只是一个简单的示例,没有对输入进行错误处理。在实际应用中,您可能需要添 加一些错误检查和边界条件的处理。
c 复制代码
#include <stdio.h>
void decimalToBase(int decimal, int base) { int remainder; if (decimal == 0) { return; } else { remainder = decimal % base; decimalToBase(decimal / base, base); if (remainder < 10) { printf("%d", remainder); } else { printf("%c", 'A' + remainder - 10); } }
}Hale Waihona Puke int main() { int decimal, base; printf("Enter a decimal number: "); scanf("%d", &decimal); printf("Enter the base: "); scanf("%d", &base); printf("The number in base %d is: ", base); decimalToBase(decimal, base); printf("\n"); return 0;
}
在这个示例中,我们定义了一个递归函数 decimalToBase ,它将十进制数转换为任意进制。 函数接受两个参数: decimal 表示要转换的十进制数, base 表示目标进制。首先,我们通 过递归调用将十进制数除以目标进制,直到十进制数为 0。然后,我们计算余数,并将其打 印出来。如果余数小于 10,则直接打印数字;如果余数大于等于 10,则将其转换为对应的 字母(A 表示 10,B 表示 11,以此类推)。 在 main 函数中,我们从用户输入获取要转换的十进制数和目标进制,并调用 decimalToBase 函数进行转换。最后,我们打印出转换后的结果。 请注意,这只是一个简单的示例,没有对输入进行错误处理。在实际应用中,您可能需要添 加一些错误检查和边界条件的处理。