<<

Beschreibung

Der Left-Shift-Operator << bewirkt, dass die Bits des linken Operanden um die vom rechten Operanden angegebene Anzahl von Positionen nach links verschoben werden.

Syntax

variable << number_of_bits

Parameter

  • variable: Erlaubte Datentypen: byte, int, long.
  • number_of_bits: Eine Zahl < = 32. Erlaubte Datentypen: int.

Beispielcode

int a = 5; // Binär: 0000000000000101 int b = a << 3; // Binär: 0000000000101000, oder 40 als Dezimal

※ Anmerkungen und Warnungen:

Wenn du einen Wert x um y Bits (x << y) verschiebst, gehen die am weitesten links liegenden y Bits in x verloren.

int x = 5; // Binär: 0000000000000101 int y = 14; int result = x << y; // Binär: 0100000000000000 - Die erste 1 von 101 wurde verworfen

Wenn du sicher bist, dass keine der Einsen in einem Wert in Vergessenheit gerät, ist ein einfacher Weg, sich den Operator für die linke Verschiebung vorzustellen, dass er den linken Operanden mit 2 multipliziert, um die Potenz des rechten Operanden zu erreichen. Um beispielsweise Potenzen von 2 zu erzeugen, können die folgenden Ausdrücke verwendet werden:

Operation Ergebnis --------- ------ 1 << 0 1 1 << 1 2 1 << 2 4 1 << 3 8 ... 1 << 8 256 1 << 9 512 1 << 10 1024 ...

Das folgende Beispiel kann verwendet werden, um den Wert eines empfangenen Bytes an den seriellen Monitor auszugeben. Verwende den linken Umschaltoperator, um das Byte von unten (LSB) nach oben (MSB) zu verschieben und seinen binären Wert auszugeben:

// Gibt den binären Wert (1 oder 0) des Bytes aus void printOut1(int c) { for (int bits = 7; bits > -1; bits--) { // Vergleiche die Bits 7-0 im Byte if (c & (1 << bits)) { Serial.print("1"); } else { Serial.print("0"); } } }

Siehe Auch

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.