我正在处理一个作业问题,要求我们用 C 语言编写一个函数,将十进制转换为八进制。这是我到目前为止所拥有的
int oct(int num) {
if (num < 8) {
return num;
}
else {
}
}
所以是的,我很困惑,非常感谢任何帮助谢谢
十进制转八进制?超级简单,stdlib 中有两个函数。
void dec2oct(char *dst, const char *src, size_t dstsz)
{
int n = strtoll(src, NULL, 10); // treat "src" as base-10
snprintf(dst, dstsz, "%o", n); // and write it to "dst" as base-8
}
像这样称呼它:
char buf[32];
dec2oct(buf, "133742", sizeof(buf));
由于您的函数必须返回一个整数,因此您必须像十进制数一样构建八进制数。
做长除以 8 来计算数字。网上有无数用 C 语言进行长除法的例子。
然后对于每个数字,将其乘以 10 并添加到您的运行计数中。然后它将是十进制装扮成八进制......或者是相反的方式......
请参阅以下程序。
我希望这会有所帮助。
void print_oct(int num)
{
if (num != 0) {
print_oct(num / 8);
printf("%d", num % 8);
}
}