Nick: C++ (Pseudo-)Zufallszahl generieren

Beitrag lesen

Hi Gunnar!

Nein. Wenn du 2²³ haben willst, musst du 1 23 Stellen nach links schieben, nicht 2. (Oder 2 22 Stellen.)

Wenn 2²³ die kleinste Zahl ist, die deine Zufallszahl annehmen kann, dann musst du eben 2²³ addieren. (Der kleinste Wert von rand() % x ist ja 0.)

Mh, jetzt verstehe ich gar nichts mehr.
Jetzt habe ich versucht eine Zahl zwischen 24bit und 32bit zu erzeugen aber der Wert ist immer 16777216.

Der Code sieht so aus

unsigned r;  
r = rand() % (1<<32) + (1<<24);

Das sollte doch eigentlich nichts anderes sein als das Beispiel der Referenz mit
v2 = rand() % 100 + 1; // v2 in the range 1 to 100

Was mache ich falsch?