<<

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

ARDUINO KAUFEMPFEHLUNG

Arduino UNO R3
Arduino Starter Kit
Bitte Beachten: Dies sind Partnerschaftslinks. Wenn Sie die Komponenten über diese Links Kaufen, können wir eine Provision erhalten, ohne weitere Kosten für Sie. Wir Schätzen es.

※ OUR MESSAGES