floating-point相关内容

将浮点异常转换为C ++异常

是否可以在x86 Linux上将浮点异常(信号)转换为C ++异常? 这是为了调试目的,因此非可移植性和不完善,如果不是100%保证所有析构函数都被调用)。 解决方案 如果你的C ++标准库实现支持TR1函数 fetestexcept , feraiseexcept 和 feclearexcept 我还没有,所以我不能测试这个)你可以检测五种浮点错误,然后你可以抛出任何异常你想要的 ..
发布时间:2016-10-22 18:44:37 C/C++开发

将编译器优化划分为乘法

根据此问题,浮点点除法与浮点乘法 。由于某些原因,除法比乘法慢。 如果可能,编译器通常是否用乘法代替除法? 例如: float a; //在运行时a = 5.4f float b = a / 10.f; 将是: float a; //在运行时a = 5.4f float b = a * 0.1f; 如果认为编译器可靠 ..
发布时间:2016-10-22 18:36:45 C/C++开发

Javascript是C ++的4倍?

很长一段时间,我认为C ++比javascript快。然而,今天我做了一个基准脚本来比较两种语言的浮点计算的速度,结果是惊人的! Javascript几乎是c ++的4倍! 我让两种语言在我的i5-430M笔记本电脑上做同样的工作,执行 a = a + b 100000000次。 C ++大约需要410ms,而javascript只需要大约120ms。 我真的不知道为什么java ..
发布时间:2016-10-22 18:13:00 C/C++开发

为什么双倍优先于浮动?

在我看到的大多数代码中, double 是 float 的最爱,即使高精度不需要。 由于存在性能惩罚当使用双重类型(CPU / GPU /内存/总线/缓存/ ...)时,这种双重过度使用的原因是什么? :在计算流体动力学中,我使用的所有软件都使用双精度。在这种情况下,高精度是无用的(因为由于数学模型中的近似的误差),并且存在大量的要移动的数据,其可以使用浮点数削减一半。 今天的计 ..
发布时间:2016-10-22 17:41:30 C/C++开发

双位数的位表示

我做了这个程序,它的功能如预期,知道浮点的位表示: float x1 = 675.78125; int * pint1; pint1 =(int *)& x1; for(int i = 0; i { if(* pint1& 1) { cout> = 1; } ..
发布时间:2016-10-20 23:56:46 C/C++开发

浮点不准确

在编写一个函数时,我会在一个范围内的每个数字执行一些操作,我遇到浮点不准确的一些问题。问题可以在下面的代码中看到: #include using namespace std; int main() { double start = .99999,end = 1.00001,inc = .000001; int steps =(end - s ..
发布时间:2016-10-20 22:54:54 C/C++开发

浮点计算改变,如果存储在中间“双”变量

我想写一个简单的日志基础2方法。我理解,在计算机上代表像std :: log(8.0)和std :: log(2.0)很困难。我也理解std :: log(8.0)/ std :: log(2.0)可能会导致一个值略低于3.0。我不明白的是为什么把下面的计算结果放到一个双精度值,使其成为一个左值,然后将它转换为一个unsigned int将改变结果相比直接转换公式。下面的代码显示了我的测试用例,它 ..
发布时间:2016-10-20 22:21:29 C/C++开发

区分零和负零C ++

我遇到了一个情况在我的代码中,一个函数返回一个双精度,这是可能的双精度零,负零,或另一个值完全。我需要区分零和负零,但是默认的双重比较没有。由于double的格式,C ++不允许使用逐位运算符比较双精度,所以我不确定如何处理。如何区分两者? 解决方案 致电 std :: signbit() 确定符号位的状态。 ..
发布时间:2016-10-20 22:15:49 C/C++开发

给定数字位于哪个段中?

假设有 n (整数)连续段长度 l (浮点)。也就是: 段0 = [0,l) 段1 = [1,2, b $ b段2 = [2 * 1,3 * l) ... 段(n-1)= [(n-1)* l,n * l) 给定一个数字 x 我的第一个想法是以下内容: code> int segmentId =(int)floor(x / l); ..
发布时间:2016-10-20 22:11:45 C/C++开发

浮动分数精度

float 在 1.0f 和之间有多少精度 例如,如果第一个小数 float 不能表示 0.13f ,答案是一个浮点数只有1个精度位置。 解决方案 std :: numeric_limits :: digits10 $ b b 从 http://en.cppreference.com/ w / cpp / types / numeric_limits ..
发布时间:2016-10-20 21:43:59 C/C++开发