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

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

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

最佳答案

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

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

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

关于c++ - 如何在 C++ 中定义自定义浮点格式(类型)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882303/

相关文章:

c++ - 为什么在 C++ 中必须从 void 指针进行类型转换?

c++ - 共享对象 (.so)、静态库 (.a) 和 DLL (.so) 之间的区别?

java - 后台代码java中格式化小数

php - 我遇到有关使用数组 php 进行数学运算的问题

c++ - 如何在 C++ 中查找重复元素的索引?

c++ - 我应该专攻还是重载?

Javascript 比较数字不起作用

c++ - 不同语言的浮点精度

c++ - 用于高级综合的任意精度浮点库

numpy - numpy.var 中的精度错误