Erzeugung von Zufallszahlen

Gast #1606442
Lesenswert?

Hallo,
fast traue ich mir die Frage nicht:
Ich will Zufallszahlen von 0..7 erzeugen und habe das gem. folg. 
Programmausschnitt versucht. Bei der LCD-Ausgabe (Kontrolle) erscheinen 
häufig Werte größer 7. Wo ist mein vielleicht trivialer Denkfehler?

unsigned char test, test1;
  test=rand();
  test &= 0x07;

  lcd_goto(1,1);
  lcd_write_s("+++++");
  lcd_goto(1,1);
  wait_ms(20);
  itoa(test,Buffer,5);
  lcd_write_s(Buffer);
  wait_ms(20);

Alles in einem mega8 mit AVR-Studio 4.13 SP2. Die +-Zeichen sind nur für 
das sichere Überschreiben des Displayinhaltes. Dass Doubletten 
entstehen, ist mir klar.

Vielen Dank
Dieter
#1606461
Lesenswert?

Bei "itoa(test,Buffer,5)" meinst Du mit "5" wohl die Länge des 
Ergebnisses? In Wirklichkeit ist das die Zahlenbasis, mit der 
konvertiert wird. Wenn Du Dezimalzahlen willst, sollte da 10 stehen, in 
diesem Fall kann es auch 8 sein (oktal), weil die Werte nur von 0 bis 7 
gehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren