草庐IT

floating-point-conversion

全部标签

c++ - float 和 double 的快速乘法/除法 (C/C++)

在我正在编写的软件中,我正在对我的值进行数百万次乘法或除以2(或2的幂)。我真的希望这些值为int这样我就可以访问位移运算符inta=1;intb=a但是,我不能,我必须坚持double。我的问题是:由于有标准的double表示(符号、指数、尾数),有没有办法使用指数来获得2的幂的快速乘法/除法?我什至可以假设位数将是固定的(该软件将在始终具有64位长double的机器上运行)P.S:是的,算法大多只做这些操作。这是瓶颈(它已经是多线程的了)。编辑:还是我完全弄错了,聪明的编译器已经为我优化了?临时结果(用Qt来测量时间,矫枉过正,但我​​不在乎):#include#include#i

c++ - 当你逻辑不是 float 时会发生什么?

我假设这只是返回一个int。还有什么我应该注意的吗?C/C++的区别?floata=2.5;!a;//Whatdoesthisreturn?Int?Float? 最佳答案 关于C++,引用C++11§5.3.1/9:Theoperandofthelogicalnegationoperator!iscontextuallyconvertedtobool;itsvalueistrueiftheconvertedoperandisfalseandfalseotherwise.Thetypeoftheresultisbool.所以这里真正相

c++ - 在两个 float 之间生成随机 float

我知道这是一个相当简单的问题,但我数学不太好。我知道如何生成0到1之间的随机float:floatrandom=((float)rand())/(float)RAND_MAX;但是,如果我想要一个给定两个float范围的函数,如何返回该范围内的伪随机float?例子:RandomFloat(0.78,4.5);//Couldreturn2.4124,0.99,4.1,etc. 最佳答案 floatRandomFloat(floata,floatb){floatrandom=((float)rand())/(float)RAND_MA

mongodb - GeoJSON 和 MongoDB : Is it worth it to store points as GeoJSON. 点?

随着2.3>的引入,MongoDB在位置数据处理和查询方面变得更加有用。MongoDB将文档存储为BSON,因此每个文档都具有所有文档字段,这显然可能导致比我们传统的RMDBS更大的数据库。我曾经将折线和多边形存储为一系列索引点,并带有一个额外的字段表示每条线的顺序(我这样做是为了确保在使用JavaScript时的一致性,因此点并不总是以正确的方式存储命令)。是这样的:polyline:{[point:[0,0],order:0],[point:[0,1],order:1]}而现在我使用:polyline:{type:'LineString',coordinates:[[0,0],[1

mongodb - GeoJSON 和 MongoDB : Is it worth it to store points as GeoJSON. 点?

随着2.3>的引入,MongoDB在位置数据处理和查询方面变得更加有用。MongoDB将文档存储为BSON,因此每个文档都具有所有文档字段,这显然可能导致比我们传统的RMDBS更大的数据库。我曾经将折线和多边形存储为一系列索引点,并带有一个额外的字段表示每条线的顺序(我这样做是为了确保在使用JavaScript时的一致性,因此点并不总是以正确的方式存储命令)。是这样的:polyline:{[point:[0,0],order:0],[point:[0,1],order:1]}而现在我使用:polyline:{type:'LineString',coordinates:[[0,0],[1

c++ - int、char、float、bool,哪个最小?

以下内容来自“在家填写”编程测试,该测试是英国大学游戏开发理学硕士申请流程的一部分:C++BasicsIfaprogramdeclaredfourvariables,oneoftypeint,oneoftypefloat,oneoftypechar,andoneoftypebool,whichvariablewouldoccupytheleastspaceinmemory?intcharfloatbool根据说明,只有一个真实的陈述。但是,我的C++书(C++PocketReference,O'Reilly)指出:“bool的典型大小是一个字节”和“char的大小是一个字节。字节的大小

c++ - 如何正确和标准地比较 float ?

每次我开始一个新项目并且需要比较一些浮点或double变量时,我都会编写如下代码:if(fabs(prev.min[i]-cur->min[i])max[i])然后我想摆脱这些神奇的变量0.000001(和0.00000000001对于double)和fabs,所以我编写了一个内联函数和一些定义:#defineFLOAT_TOL0.000001所以我想知道是否有任何标准方法可以做到这一点?可能是一些标准的头文件?有float和双重限制(最小值和最大值)也很好 最佳答案 来自TheFloating-PointGuide:Thisisa

c# - 为什么 float 和 int 具有如此不同的最大值,即使它们的位数相同?

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:whatthedifferencebetweenthefloatandintegerdatatypewhenthesizeissameinjava?您可能知道,这两种类型都是32位的。int只能保存整数,而float也支持floatingpoint数字(如类型名称所示)。那int的最大值怎么可能是231,float的最大值是3.4*1038,而他们都是32位?我认为int的最大值容量应该高于float,因为它不会为float节省内存并且只接受整数。在这种情况下,我会很高兴得到解释。

c++ - 如何在 OpenCV 中将 Float Mat 写入文件

我有一个矩阵垫子B(480,640,CV_32FC1);包含float值..我想将此矩阵写入一个文件,该文件可以在记事本或Msword或Excel中打开以查看其中的值并进行存储....imwritefunction只能保存8位或16位图像..如果可以这样做,请提出您的建议?如果是,如何?? 最佳答案 使用纯OpenCVAPI调用://Declarewhatyouneedcv::FileStoragefile("some_name.ext",cv::FileStorage::WRITE);cv::MatsomeMatrixOfAnyT

c++ - 我可以在 C++ 中安全地将浮点结构转换为 float 组吗?

这个问题在这里已经有了答案:Reinterpretstructwithmembersofthesametypeasanarrayinastandardcompliantway[duplicate](5个回答)关闭5年前。例如我有这个结构structA{floatx;floaty;floatz;};我可以这样做吗?一一;float*数组=(float*)&a;并使用asfloat组? 最佳答案 在实际意义上,是的,您可以这样做,它适用于所有最常用的架构和编译器。见"TypicalalignmentofCstructsonx86"维基百