相关疑难解决方法(0)

C++标准是否指定浮点数表示的任何内容?

对于类型T为其中std::is_floating_point<T>::valuetrue,不C++标准规定上的任何方式T应实施?

例如,是否T甚至遵循符号/尾数/指数表示?或者它可以是完全随意的?

c++ floating-point standards ieee-754 c++11

36
推荐指数
3
解决办法
3348
查看次数

假设使用C中的IEEE754浮点表示浮点数是否安全?

浮点是在C中定义的实现.因此没有任何保证.

我们的代码需要是可移植的,我们正在讨论在我们的协议中使用IEEE754浮点数是否可以接受.出于性能原因,如果我们不必在发送或接收数据时在固定点格式之间来回转换,那将是很好的.

虽然我知道平台和架构之间可能存在关于long或的大小的差异wchar_t.但我似乎无法找到任何具体的floatdouble.

到目前为止我发现字节顺序可能在大端平台上被反转.虽然有不带浮动包含代码,其中点支撑平台floatdouble甚至无法链接.否则平台似乎坚持IEEE754单精度和双精度.

那么可以假设浮点数在IEEE754可用时安全吗?

编辑:回应评论:

你对"安全"的定义是什么?

安全我的意思是,一个系统上的位模式在另一个系统上意味着相同(在字节旋转之后处理字节序).

c floating-point ieee-754

23
推荐指数
2
解决办法
1693
查看次数

在GPU上使用2个FP32仿真FP64

如果要模拟具有两个单精度浮点的双精度浮点,那么性能会是什么样的,并且可以做得好吗?

目前,Nvidia正在为双精度特斯拉卡充电,这使得您可以获得单精度性能的三分之一(值得注意的是Titan/Titan Black除外).

如果要使用具有gimped双精度的Geforce GPU并使用2个单精度浮点模拟双精度,性能会是什么样的?

floating-point double cuda

6
推荐指数
1
解决办法
2146
查看次数

FPU与软件仿真的性能比较

虽然我知道(所以我被告知)浮点协处理器的工作速度比浮点运算的任何软件实现都快,但我完全没有直觉感觉这个差异有多大,按照数量级.

答案可能取决于应用程序和您的工作地点,微处理器和超级计算机之间.我对计算机模拟特别感兴趣.

你能指出这个问题的文章或论文吗?

floating-point performance scientific-computing fpu

5
推荐指数
1
解决办法
4002
查看次数

C中long double的转换说明符

长双数据类型可以在C这些转换说明:%乐,%LE,%LF,%了Lg,%LG(参考).

我写了一个小程序来测试:

#include <stdio.h>
int main(void) {
  long double d = 656546.67894L;
  printf("%.0Le\n",d);
  printf("%.0LE\n",d);
  printf("%.0Lf\n",d);
  printf("%.0Lg\n",d);
  printf("%.0LG\n",d);
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

输出:

-0

-4E-153

-0

-4E-153

-4E-153

但没有人能提供所需的输出,即656547(你可能很容易理解).是什么原因?

使用的编译器是gcc版本3.4.2(mingw-special).

c mingw

4
推荐指数
1
解决办法
3808
查看次数

从 int64_t 转换为 double 到 int64_t 再次改变它的值

int main()
{
  int64_t iaVal = (int64_t)9007199258935295;
  double daVal = (double)iaVal;
  std::cout << "original " << iaVal << "\tAfter conversion  "  << (std::int64_t)daVal <<  std::endl;
}
Run Code Online (Sandbox Code Playgroud)

输出 :

int main()
{
  int64_t iaVal = (int64_t)9007199258935295;
  double daVal = (double)iaVal;
  std::cout << "original " << iaVal << "\tAfter conversion  "  << (std::int64_t)daVal <<  std::endl;
}
Run Code Online (Sandbox Code Playgroud)

如何从 double 中获得正确的值?

c++

1
推荐指数
1
解决办法
135
查看次数