Bit­ma­ni­pu­la­ti­on


void setup()
{
  byte Zahl = 255;
  Serial.begin(9600);
 
  Serial.println("\tDezimal: " + String(Zahl, DEC));
  Serial.println("-------------------------------------");
  Serial.println("shift links:");
  Serial.println("-------------------------------------");
 
  // shift links
  for (int i = 7; i > 0; i--)
  {
    Zahl = Zahl << 1;
    Serial.print(Zahl, BIN);
 
    // Anzeige: Dezimal, Binär 
    Serial.println("\tDezimal: " + String(Zahl, DEC));
  }
 
  Serial.println("-------------------------------------");
 
  // Neustart
  Zahl = 255;
  Serial.print(Zahl, BIN);
  Serial.println("\tDezimal: " + String(Zahl, DEC));
  Serial.println("shift rechts: zur Verdeutlichung Anzahl 0 erg\u00e4nzt");
  Serial.println("-------------------------------------");
 
  // shift rechts
  for (int i = 0; i < 7; i++)  
  {  
    Zahl = Zahl >> 1;
   Serial.print(Zahl, BIN); 
   Serial.print("\t"); 

   // zur Verdeutlichung nicht angezeigt 0 ergänzen 
   for (int j = 0; j <= i; j++) 
   { 
     Serial.print("0"); 
   } 
   Serial.print(Zahl, BIN);
  
   // Anzeige: Dezimal, Binär 
   Serial.println("\tDezimal: " + String(Zahl, DEC));
  }

  // ~ -> Bits umkehren
  Zahl = B11111100;
  Serial.println("-------------------------------------");  
  Serial.println("Bits mit ~ umkehren");
  Serial.print(Zahl, BIN);
  Serial.println("\tDezimal: " + String(Zahl, DEC));
  Zahl = ~ Zahl;
  Serial.print(Zahl, BIN);
  Serial.println("\tDezimal: " + String(Zahl, DEC));
}

void loop()
{
  // bleibt leer, Programm läuft nur einmal
}

So sieht es aus: