如何在C ++中定义自定义浮点格式(类型)?

时间:2015-01-10 23:32:44

标签: c++ floating-point floating-point-precision

如何定义具有特定精度和指数和有效位的某些位数的自己的浮点格式(类型)?例如,具有20位指数和107位有效数字(非标准15/112位)的128位浮点数,或具有19/236位指数/有效数的256位浮点数。

1 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点。您可以创建自己的类,其中您拥有指数的成员和尾数的成员,您可以为您需要的运算符编写代码,然后实现您通常需要的所有函数。标准数学库。 (例如atan()sin()exp()pow()。)

或者您可以找到现有的任意精度库并使用它。虽然自己实现它会很有趣也很有趣,但它可能会有很多错误并且工作量非常大,除非你的用例受到极大的限制。

维基百科有a list of arbitrary precision math libraries你可以自己调查。