C# 数学正确语法

C# Math correct syntax

for (int bb = 1; bb <= 24; bb++)
{
    if (x > Math.Exp(Math.Log(2) * (-bb)))
    {
        x = r - Math.Exp(Math.Log(2) * (-bb));
        xbb = 1;
    }
    else
    {
       xbb = 0;
    }
}

在我得到第一个 'x' 之后,开始我的 r=0.1,我想将它插入 'r' 以进行下一步。所以 'r' 看起来像以前的值 'x' (r=x_n-1).

我知道如何在 MathCad 中实现,但不知道如何在 C# 中实现。

看来您只需要这样的东西:

if (x > Math.Exp(Math.Log(2) * (-bb)))
{
    x = r - Math.Exp(Math.Log(2) * (-bb));
    xbb = 1;
    r = x;
}

因此在下一次迭代中 r 将保持 x 的 "previous" 值。

看起来您实际上只是在计算 x 的二进制表示形式。 Math.Exp( Math.Log(2) * -bb ) 是一种相当冗长的写法 Math.Pow(2, -bb)。您也不需要那样计算。这是我的做法(假设您的变量是 double):

double x = r;
double pow = 0.5;
for( int i = 0; i < 24; ++i )
{
    int xbb = 0;
    if( x > pow )
    {
        x -= pow;
        xbb = 1;
    }

    pow /= 2;
}