C函数从十进制转换为八进制

时间:2013-01-31 05:57:53

标签: c function octal

我正在处理一个家庭作业问题,要求我们在C中编写一个将从十进制转换为八进制的函数。这是我到目前为止所拥有的

int oct(int num) {
    if (num < 8) {
        return num;
    }
    else {

    }
}

所以,我已经陷入困境,非常感谢任何帮助 感谢

5 个答案:

答案 0 :(得分:5)

您可以使用%o打印八进制数

检查此链接 http://ideone.com/OLXEL7

printf("%o\n", x); 

希望这有帮助

答案 1 :(得分:1)

十进制到八进制?超级简单,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));

答案 2 :(得分:0)

由于你的函数必须返回一个整数,你必须建立八进制数,好像它是一个十进制数。

长8除以计算出数字。网上有无数的例子用于C中的长期划分。

然后,对于每个数字,将其乘以10并添加到您的运行计数。然后它将十进制打扮成八进制...或者是相反的方式....

答案 3 :(得分:0)

请参阅以下 Program

我希望这可以提供帮助。

答案 4 :(得分:0)

void print_oct(int num)
{
    if (num != 0) {
        print_oct(num / 8);
        printf("%d", num % 8);
    }
}