哪位高手能帮帮小弟我将下面的代码翻译成Delphi的代码,多谢

谁能帮帮我将下面的代码翻译成Delphi的代码,谢谢
//一个很棒的随机数发生器

#define   CMATH_TEMPERING_SHIFT_U(y) (y   > >   11)
#define   CMATH_TEMPERING_SHIFT_S(y) (y   < <   7)
#define   CMATH_TEMPERING_SHIFT_T(y) (y   < <   15)
#define   CMATH_TEMPERING_SHIFT_L(y) (y   > >   18)

class   CRandom
{
private:
//data
unsigned   int rseed;
unsigned   long mt[CMATH_N];
int   mti;
public:
CRandom(void);
unsigned   int   Random(unsigned   int   n);
void   SetRandomSeed(unsigned   int   n);
unsigned   int   GetRandomSeed(void);
void   Randomize(void);
};

CRandom::CRandom(void)
{
rseed   =   1;
mti   =   CMATH_N   +   1;
}

unsigned   int   CRandom::Random(unsigned   int   n)
{
unsigned   long   y;
static   unsigned   long   mag01[2]   =   {0x0,   CMATH_MATRIX_A};

if(n   ==   0)
return   (0);
if(mti   > =   CMATH_N)
{
int   kk;
if(mti   ==   CMATH_N   +   1)
SetRandomSeed(4357);
for(kk   =   0;   kk   <   CMATH_N   -   CMATH_M;   kk++)
{
y   =   (mt[kk]&CMATH_UPPER_MASK)   |   (mt[kk   +   1]   &   CMATH_LOWER_MASK);
mt[kk]   =   mt[kk   +   CMATH_M]   ^   (y   > >   1)   ^   mag01[y   &   0x1];
}
for(;   kk   <   CMATH_N   -   1;   kk++)
{
y   =   (mt[kk]&CMATH_UPPER_MASK)   |   (mt[kk   +   1]   &   CMATH_LOWER_MASK);
mt[kk]   =   mt[kk   +   (CMATH_M   -   CMATH_N)]   ^   (y   > >   1)   ^   mag01[y   &   0x1];

mti   =   0;
}
}

y     =   mt[mti   +   1];
y   ^=   CMATH_TEMPERING_SHIFT_U(y);
y   ^=   CMATH_TEMPERING_SHIFT_S(y)   &   CMATH_TEMPERING_MASK_B;
y   ^=   CMATH_TEMPERING_SHIFT_T(y)   &   CMATH_TEMPERING_MASK_C;
y   ^=   CMATH_TEMPERING_SHIFT_L(y);

return   (y   &   n)
}

void   CRandom::SetRandomSeed(unsigned   int   n)
{
mt[0]   =   n   &   0xffffffff;
for(mti   =   1;   mti   <   CMATH_N;   mti++)
mt[mti]   =   (69069   *   mt[mti   -   1])   &   0xffffffff;
rseed   =   n;
}

unsigned   int   CRandom::GetRandomSeed(void)
{
return   (rseed);
}

void   CRandom::Randomize(void)
{
SetRandomSeed(time(NULL));
}

------解决方案--------------------
这句什么意思?CMATH_TEMPERING_SHIFT_U(y)(y > > 11)
其他的好像都好翻译的

------解决方案--------------------
不知棒在哪里?
------解决方案--------------------
定义宏吧,把他写成一个函数吧!
------解决方案--------------------
给分
------解决方案--------------------
有标准随机数函数
Randomize();