实时 C++ 中的浮点数学
1. 浮点算术
在实时 C++ 中,浮点算术可以得到有效应用。例如,下面的简单函数用于计算半径为 r 的圆的浮点面积,面积公式为 a = πr² :
float area_of_a_circle(float r)
{
constexpr float pi = 3.14159265358979323846F;
return (pi * r) * r;
}
C++ 标准规定了三种内置浮点类型: float 、 double 和 long double 。标准并未对这些类型的内部表示细节进行规定。一般来说,标准仅要求 double 的精度至少与 float 相同, long double 的精度至少与 double 相同。编译器内部存储和处理浮点类型的方式由具体实现定义。
大多数优秀编译器的供应商会努力遵循 IEEE 754 - 2008 浮点标准。在该标准中,单精度(通常用 float 实现)要求宽度为 4 字节,提供 24 位二进制精度(约 7 位十进制精度);双精度(通常用 double 实现)必须为 8 字节宽,提供 53 位二进制精度(约 15 位十进制精度)。
有些微控制器使用浮点单元(FPU)
超级会员免费看
订阅专栏 解锁全文
653

被折叠的 条评论
为什么被折叠?



