相关疑难解决方法(0)

1.#INF00,-1.#IND00和-1.#IND是什么意思?

我正在使用浮点数搞乱一些C代码,我得到1.#INF00,-1.#IND00和-1.#IND当我尝试在屏幕上打印浮点数时.这些价值意味着什么?

我相信1.#INF00表示正无穷大,但是-1.#IND00和-1.#IND?我有时也看到了这个值:1.$ NaN不是数字,但导致这些奇怪值的原因是什么,这些可以帮助我进行调试?

我正在使用MinGW,我认为它使用IEEE 754表示浮点数.

有人可以列出所有这些无效值及其含义吗?

c c++

63
推荐指数
2
解决办法
9万
查看次数

什么浮点值使sprintf_s()产生"1.#QO"?

我有一些(遗留嵌入式c)代码,它通过一些sprintf调用生成.csv文件.偶尔我会看到的价值观1.#QO.我尝试过复制这些值的条件应该给出负无穷大,正无穷大和NaN,但它们似乎都没有给我神奇的1.#QO结果.那么产生这种价值的是什么呢?

......是的,我知道数学中出现了明显的问题,产生了这个价值,但理解它的意义将有助于调试工作.

[编辑1]进行转换的实际行是:

sprintf_s(txt, CSV_HEADER_SIZE, "%.3f", value);
Run Code Online (Sandbox Code Playgroud)

哪里:

#define CSV_HEADER_SIZE (100)
char txt[CSV_HEADER_SIZE];
Run Code Online (Sandbox Code Playgroud)

我正在使用MS Visual Studio 2008进行编译.

[编辑2]更多挖掘节目0xFFFFFFFF给出-1.#QO:

unsigned int i = 0xFFFFFFFF;
float* f = (float*)&i;
printf("%.3f", *f); // gives -1.#QO
Run Code Online (Sandbox Code Playgroud)

..并在Visual Studio调试器中-1.#QNAN00查看它将其扩展为所以看起来这可能是Microsoft特定的表示形式NaN

c format floating-point printf visual-studio-2008

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

在opencv中查找视频帧的熵时发出奇怪的输出

#include <cv.h>
#include <highgui.h>
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <fstream>

using namespace std;

typedef struct histBundle {
double rCh[256];
double gCh[256];
double bCh[256];
}bundleForHist;

bundleForHist getHistFromImage (IplImage* img, int numBins) {
float range[] = {
    0, 
    numBins
};
float *ranges[] = { 
    range 
};

bundleForHist bfh;

CvHistogram *hist = cvCreateHist (1, &numBins, CV_HIST_ARRAY, ranges, 1);
cvClearHist (hist);
IplImage* imgRed   = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* imgGreen = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* imgBlue  = cvCreateImage(cvGetSize(img), 8, 1);
cvSplit(img, imgBlue, imgGreen, …
Run Code Online (Sandbox Code Playgroud)

opencv image-processing entropy opencvdotnet

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