Thema: Delphi Random() in PurePascal

Einzelnen Beitrag anzeigen

Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#4

Re: Random() in PurePascal

  Alt 15. Mai 2009, 15:29
Zitat von himitsu:
vielleicht ist dir noch nicht aufgefallen, daß RandSeed auch noch verändert wird (sonst würdest du beim nächsten Aufruf deiner Funktion den seben Wert erhalben )

ich hatte mir das mal vor langer Zeit etwa so übersetzt ... glaub ich
Delphi-Quellcode:
Function Random(Range: LongInt): LongInt;
  Begin
    RandSeed := Int64(RandSeed) * 134775813 + 1;
    Result := TLargeIntRec(Int64(Range) * LongWord(RandSeed)).Hi;
  End;
aber was mit EBX ist ... k.A.
Ja, das mit RandSeed ist mir bewust. Man kann es entweder auskommentieren, oder das Prigramm 2 mal starten (Ohne randomize()). Beides bringt aber nicht das erwartete Ergbenis.

Zitat von BUG:
Code:
XOR EBX, EBX
entspricht
Code:
MOV EBX, 0
braucht aber weniger Prozessortakte, da 0 nicht erst aus dem Speicher geladen werden muss.

Ob das heute noch Sinn macht: keine Ahnung.

MfG,
Bug
Die Begründung das 0 er aus dem Speicher geladen werden müsste ist falsch, und ja es ist auch Heute noch schneller.
  Mit Zitat antworten Zitat