在c中重写等式

时间:2010-01-14 10:04:57

标签: c equation

Gain = 255 / (1 - 10 ^ ((Refblack-Refwhite) * 0.002/0.6) ^ (Dispgamma/1.7))

这是一种计算机语言,它看起来像c但独占或浮动不计算。 任何人都可以将其转换为c吗?

感谢

5 个答案:

答案 0 :(得分:7)

在许多语言中,^是取幂。那是pow(),它在math.h>中有以下原型:

double pow(double x, double y);

这计算x提升到y:th次幂。因此,这使得公式转换为:

#include <math.h>

Gain = 255 / (1 - pow(10, pow(((Refblack-Refwhite) * 0.002/0.6), (Dispgamma/1.7))));

答案 1 :(得分:4)

我猜他们的意思是:Gain = 255 / (1.0 - powf(10, powf((Refblack-Refwhite) * 0.002/0.6), Disgamma/1.7)))

因为^是C中的normaly xor运算符。正如其他人使用pow一样,它只会使用int:s并返回一个int。 man 3 pow获取更多信息。

答案 2 :(得分:3)

gain = 255.0 / (1.0 - pow(10.0,  pow((Refblack - Refwhite) * 0.002 / 0.6, Dispgamma / 1.7) ))

答案 3 :(得分:2)

Gain = 255 / (1 - pow(10 , ( pow( (Refblack-Refwhite) * 0.002/0.6) , (Dispgamma/1.7)) ) )

答案 4 :(得分:2)

看起来像我的Matlab代码

C中的

,类似的东西

#include <math.h>

float Gain=0;
...
Gain = 255 / (1 - powf(10, powf(((Refblack-Refwhite) * 0.002/0.6), (Dispgamma/1.7));