LINUX.ORG.RU

Сообщения Immanottahere

 

Как перевести дробную часть как int в стандартный float?

Форум — Development

Есть функция, которая возвращает uint32. Она (по идее) должна возвращать float, но исторически сложилось так, что ее писали, когда float был еще более тормозным. В результате она возвращает дробную часть как uint32.

Пример:

Получил:
0x12345678(16) -> 305419896(10)
Подразумевал:
0x0.12345678(16) -> 0.0711111(10)

Как мне ее значение странслировать в нормальный float? Я подразумеваю, можно ли это сделать не мучаясь с каждым битом типа 1*16^-1+2*16^2+3*16^-3+4*16^-4+5*16^-5+6*16^-6+7*16^-7+8*16^-8.

Выходные значения подразумеваются от 0.0 (0(16) до 1.0 (0.FFFFFFFF(16))

 ,

Immanottahere
()

Хранить инициализационные данные не в памяти

Форум — Development

Привет!

Есть приложение для расчетов одной формулы. Для этого нужны две таблицы по несколько сотен метров каждая. Мне нужно, чтобы эти таблицы загрузились в память только когда мне это будет нужно. Массивы достаточно большие, поэтому просто написать

struct a = { { 0x23742342u, 0x23742500u, 0x23744000u ... 
нельзя - я так понял, я либо в стек не влезу, либо на старте буду жрать очень много памяти.

Есть проблема - приложение должно быть stand-alone и однофайловое. То есть хранить таблицу где-то рядом не получится.

Есть какая-нибудь возможность (желательно негеморройно-кросплатформенная, приложение для никса и шиндов) хранить в бинаре таблицу, а когда нужно - загрузить ее в память?

 

Immanottahere
()

RSS подписка на новые темы