bitRead() oder bitshift Auslese

Welche Version bevorzugt Ihr ? :slight_smile:

  1. bitshift mit &
  2. bitRead()
const byte test_byte = 0x2A; //00101010

// Prints out Binary value (1 or 0) of byte
void printOut(int c)
{
  for (int bits = 7; bits > -1; bits--)
  {
    // Compare bits 7-0 in byte
    if (c & (1 << bits))
    {
      Serial.print ("1");
    }
    else
    {
      Serial.print ("0");
    }
  }
  Serial.println(" ");
}

void readOut(const int test_)
{
  for (int8_t n = 7; n > -1; n--)
  {
    Serial.print(bitRead(test_, n));
  }
  Serial.println(" ");
}

void setup()
{
  Serial.begin(9600);
  while (!Serial) { }
  printOut(test_byte);
  readOut(test_byte);
}

void loop() { }

Besten Dank!
Grillgemuese

 Serial.println('Z',BIN);

itoa()

Ich moechte natuerlich die einzelnen Bits fuer Programmablaeufe nutzen.

Tja, dann sach das doch!

:smiling_imp: Wie soll ich dir denn "richtig" antworten, wenn du die falsche Frage stellst :smiling_imp: .

OK, mit Rücksichtnahmen auf die neue Anforderung, finde ich, du solltest dir mal Bit Fields anschauen.
Suchtipp: "C++ struct bit field"

Übrigens:
Macros braucht man heutzutage, in C++, kaum noch.
Sie richten oft mehr Schaden an, als sie nutzen.