26/01/2015 13:20
(no subject)
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
А есть ли в языке C стандартная библиотека функций для работы с вещественными числами на битовом уровне? Нужны вещи типа: узнать порядок (двоичный) числа, изменить этот порядок на заданную величину, выделить мантиссу и т.п. Я, конечно, могу сделать все это с помощью масок и сдвигов, но тогда программа станет непереносимой. Не хочу привязываться к конкретному представлению.
Любопытно, что в ISO-стандарте языка Modula-2 такие модули есть: LowReal и LowLong.
UPD. Собственно, мне нужно найти мантиссу разности двух чисел a и b, когда порядки их приведены к наибольшему из порядков чисел a,b и с. Задачу решает следующая универсальная, но неэффективная процедура comp:
UPD2. Решил задачу функциями ldexp и frexp из <math.h> (спасибо
dims12). Совершенно точно переносимо и скорее всего эффективнее, чем приведено выше.
Любопытно, что в ISO-стандарте языка Modula-2 такие модули есть: LowReal и LowLong.
UPD. Собственно, мне нужно найти мантиссу разности двух чисел a и b, когда порядки их приведены к наибольшему из порядков чисел a,b и с. Задачу решает следующая универсальная, но неэффективная процедура comp:
UPD2. Решил задачу функциями ldexp и frexp из <math.h> (спасибо
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Tags:
no subject
no subject
А для извлечения частей есть функция frexp: http://en.wikibooks.org/wiki/C_Programming/C_Reference/math.h/frexp
no subject
no subject