Составить программу на алгоритмическом языке, моделирующую вычисления на ЭВМ с ограниченной разрядностью m. Используя эту программу найти значения машинного нуля, машинной бесконечности, машинного эпсилон . Составить график зависимости относительной погрешности от количества разрядов m= 4,5,…8.
Я собираюсь сделать эту зачаду на С++,но возникли проблемы на этапе разработки,а именно,у меня не совсем получается представить структуру.На сколько я понимаю,любое число в памяти представляется как 1 бит на знак +-,m разрядов идет мантиса,потом еще 1 бит на знак степени двойки,затем n-ое число разрядов,в которых храниться степерь двойки(p),а само число представляется в виде x=m*2p.
Насколько я понимаю погрешность будет появляться после того как число из нормального вида будет переводиться в вид,в котором оно храниться в памяти,а потом востанавливаться и сравниваться с исходным,так будет определяться погрешность.Проблемы возникли в том,как преобразовывать число в обе стороны,у меня даже дельных идей нету,так что буду рад хоть какой то идее,с более менее простой реализацией.
P.S. Забыл сказать,на входе может быть любое вещественное число.
Вычисление с ограниченной разрядностью. |