Как представить дробь в двоичном - PullRequest
0 голосов
/ 26 марта 2012

Я работаю над личным проектом, который заключается в создании программы на языке c, которая принимает дробь, такую ​​как «1/4, 3/4, 7,5» и выводит 11100101 <=, что неправильно, это простодать идею.Но прежде чем сделать это, мне нужно знать, какова процедура представления дроби в двоичном виде.Любую помощь я ценю.Спасибо </p>

1 Ответ

2 голосов
/ 26 марта 2012

Создайте пользовательский тип для этого:

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
}

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...