如何用二进制表示分数

时间:2012-03-26 09:43:50

标签: c type-conversion

我正在开发一个个人项目,即用c创建一个程序,例如“1 / 4,3 / 4,7,5”,输出11100101< =这不对,这只是提出这个想法。但在我这样做之前,我需要知道用二进制表示分数的过程是什么。我很欣赏任何帮助。谢谢

1 个答案:

答案 0 :(得分:2)

为此创建自定义类型:

typedef struct {
        int numerator;
        unsigned int denominator;
} my_fract;

根据您的使用情况,您可以使用不同的分子和分母大小。

然后你可以添加带有分子和分母,浮点数或双精度数的构造函数。也许转换器输出浮动和再次加倍,因为这种类型没有“自然”算术,如果你想要一个,你必须自己做。

my_fract make_fract(int numerator, unsigned int denominator)
{
        my_fract res;
        res.numerator = numerator;
        res.denominator = denominator;
}

double fract_to_double(my_fract foo)
{
        return (double)foo.numerator / (double)foo.denominator
}

等等。