Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » RAND_MAX

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
02.06.2006, 09:57 Uhr
ao

(Operator)



Zitat von 0xdeadbeef:
Welche antike libc hat denn RAND_MAX noch bei 32767?

Zum Beispiel die von VC 6 - Wasser auf deine Mühlen !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
02.06.2006, 21:24 Uhr
Helmut



Hi!

C++:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <iostream>
using namespace std;

int randFunc();

int main()
{                                  
   for(int i = 10000; i; i--)
   {
      cout << "rand ->"  ;
      cout.width(6);
      cout << right << rand()%200+1;
      cout.width(11);
      cout << right << randFunc();                      
      cout << "  <- randFunk" << endl;
   }
}

#define RANDOM  200; //0x7fff  //max -> 0x7fffffff

__declspec(naked) int randFunc()
{

#define FAKTOR 3141592653
static int lager = 1; // <--- muss ungrade sein !!

_asm    mov       eax, lager
_asm    mov       ecx, FAKTOR
_asm    mul       ecx
_asm    mov       lager, eax
_asm    mov       ecx, RANDOM
_asm    mul       ecx
_asm    inc       edx
_asm    mov       eax, edx
_asm    ret
}    


Stackrahmen braucht man für diese Funktion nicht, der Compieler würde die Register esi, edi, und ebx sichern und wiederherstellen. Diese Register benutzt die Funktion nicht.

wenn man schreibt #define RANDOM 200, dann gibt die Funktion Zahlen zwischen
1 und 200 aus, man braucht nicht func()%200+1 schreiben.

wenn man analog s_rand mit nem Timerwert initialisieren will, muss man int lager als globale Variable anlegen und mit Timerwert initialisieren --> anschließend lager |= 1; nicht
vergessen! ( muss ungrade sein!)
mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
03.06.2006, 11:34 Uhr
Drager



oki danke, probier ich dann gleich mal aus :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: