Re: с ассемблера на С
От: Programador  
Дата: 06.06.07 15:35
Оценка:
Здравствуйте, gimalay, Вы писали:

G>Может кто нибуть подсказать как перевести сей код на С. Без использования ассемблера.

G>Необходимо получить туже последовательность псевдослучайных чисел.


G>
G>function Rand_0_1 : extended;
G>const revMaxLong: double = ((1.0/$10000) / $10000);  // 2^-32

G>asm
G>        IMUL    EDX,randShift,08088405H
G>        INC     EDX
G>        MOV     randShift,EDX
G>        FLD     revMaxLong
G>        PUSH    0
G>        PUSH    EDX
G>        FILD    qword ptr [ESP]
G>        ADD     ESP,8
G>        FMULP  ST(1), ST(0)
G>end;
G>


G>Буду крайне признателен.



double Rand_0_1()
{  __int64 f=randShift*__int64(randShift);
   f+=0x00010000LL;
   f&=0xffff0000LL;
   randShift=f>>32;
   return float(f)*revMaxLong;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.