Forum: Compiler & IDEs Schieben einer 1 über mehr als 15 stellen nicht möglich?


von Zoltan (Gast)


Lesenswert?

Hallo,

ich wollte einem 32bit Wert mit einzern füllen. Dafür will ich immer
eine "1" eine Stelle weiter in den Wert hineinschieben. Das geht auch
gut bis zu der 15. Schiebeoperation. Ab da , es sollte dann FFFF0000
dort stehen, ändert sich der Wert schlagartig auf FFFFFFFF. Hat jemand
velleicht eine Lösung für dieses Problem?
(System: WINAVR GCC + Atmega8)

Und hier die Kode:

int main(void)
{
  static uint32_t tmp1=0;
  static uint8_t i=0 ,k=0;
  for(;;)
  {
    do
    {
      do
      {
        tmp|=(unit32_t)(1<<(k+(i*8)));
        k++;
      }
      while(k!=8);
      k=0;
      i++;
    }
    while(i!=3);
    i=0;
  }

}

Gruß
Zoltan

von Zoltan (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.