Logische Verschiebung

Logische Verschiebung
Logische Verschiebungs-Operatoren in verschiedenen Programmiersprachen
Sprache Links Rechts
C/C++ (nur vorzeichenlose Typen) << >>
Delphi shl shr
Java, JavaScript << >>>
Ocaml lsl lsr
Standard ML << >>
Verilog << >>
VHDL sll srl

Unter einer logischen Verschiebung (engl. logical shift) versteht man in der Informatik einen bitweisen Operator, der alle Bits des Operanden verschiebt. Die logische im Gegensatz zur arithmetischen Verschiebung erhält weder das Vorzeichenbit noch unterscheidet sie zwischen dem Exponenten und der Mantisse einer Zahl. Jedes Bit des Operanden wird einfach um eine gegebene Positionsanzahl verschoben und die entstehenden Bit-Positionen werden, in der Regel mit Nullen, aufgefüllt.

Eine logische Verschiebung wird oft genutzt, wenn der Operand als Sequenz von Bits und nicht als Zahl betrachtet wird.

Logische Verschiebungen können ein sinnvoller und effizienter Weg sein, Multiplikationen oder Divisionen von vorzeichenlosen Integer-Zahlen (Ganzzahlen) zur zweiten Potenz durchzuführen. Eine Verschiebung nach links um n Bits bei einer vorzeichenlosen oder vorzeichenbehafteten binären Zahl hat den Effekt einer Multiplikation mit 2n. Verschieben nach rechts um n Bits bei einer vorzeichenlosen binären Zahl ist gleichbedeutend mit dem dividieren durch 2n (und anschließendem Abrunden).

Weil sich arithmetische Verschiebungen und logische Verschiebungen nach rechts unterscheiden, haben viele Programmiersprachen verschiedene Operatoren für sie. So ist der arithmetische Shift-Operator bei Java und JavaScript zum Beispiel >>; wohingegen der logische Rechtsshift >>> ist. Java allein hat nur einen Linksshift-Operator (<<), weil arithmetische und logische Verschiebung denselben Effekt haben.

Die Sprache C wieder kennt nur einen Rechtsshift-Operator >>. Viele C-Compiler entscheiden welche Rechtsverschiebung gemeint ist, danach welcher Integer Datentyp verschoben werden soll; oft werden vorzeichenbehaftete Ganzzahlen durch arithmetisch verschoben, und vorzeichenlose durch die logische Verschiebung.

Beispiel

Beispiel
 
Logische Verschiebung nach rechts um 1 Bit
 
Logische Verschiebung nach links um 1 Bit

Folgende Bit-Sequenz soll logisch um 1 Bit verschoben werden: 0001 0111 (siehe Bilder)

  • ...nach links ergibt: 0010 1110
  • ...nach rechts ergibt: 0000 1011

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Bitweiser Operator — In der Informatik ist ein bitweiser Operator ein Operator, der auf ein oder zwei Bitfolgen oder Binärzahlen auf der Ebene einzelner Bits angewendet wird. Auf vielen Computern sind bitweise Operationen etwas schneller als Additions und… …   Deutsch Wikipedia

  • MMX-Technologie — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Matrix Math Extensions — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Multi Media Extension — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Linksverschiebung — bezeichnet in der Informatik die Anwendung einer bitweisen Operation, siehe Logische Verschiebung in der Medizin eine Veränderung des Differentialblutbildes, siehe Kernverschiebung Diese Seite ist eine Begriffsklärung …   Deutsch Wikipedia

  • Rechtsverschiebung — bezeichnet in der Informatik die Anwendung einer bitweisen Operation, siehe Logische Verschiebung in der Medizin eine Veränderung des Differentialblutbildes, siehe Kernverschiebung Diese Seite ist eine Begriffsklärung …   Deutsch Wikipedia

  • Bedeutung (Philosophie) — Bedeutung ist ein grundlegender Begriff in der Linguistik und Sprachphilosophie. Wichtig ist der Begriff auch in der Informatik, der Forschung zur Künstlichen Intelligenz und in den Kognitionswissenschaften. Es gibt verschiedene Ansätze zur… …   Deutsch Wikipedia

  • Bedeutung (Sprachphilosophie) — Bedeutung ist ein grundlegender Begriff in der Linguistik und Sprachphilosophie. Wichtig ist der Begriff auch in der Informatik, der Forschung zur Künstlichen Intelligenz und in den Kognitionswissenschaften. Inhaltsverzeichnis 1 Ansätze zur… …   Deutsch Wikipedia

  • Auflösbar — In diesem Glossar werden kurze Erklärungen mathematischer Attribute gesammelt. Unter einem Attribut wird eine Eigenschaft verstanden, die einem mathematischen Objekt zugesprochen wird. Ein Attribut hat oft die Form eines Adjektivs (endlich, offen …   Deutsch Wikipedia

  • Euklidisch — In diesem Glossar werden kurze Erklärungen mathematischer Attribute gesammelt. Unter einem Attribut wird eine Eigenschaft verstanden, die einem mathematischen Objekt zugesprochen wird. Ein Attribut hat oft die Form eines Adjektivs (endlich, offen …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”