Home

Bitverschiebungen

Bitverschiebung bezeichnet das Verschieben der Bits eines Werts nach links oder rechts um eine bestimmte Anzahl von Positionen. Dabei gehen Bits an einem Ende verloren und an dem anderen Ende können neue Bits eingefüllt werden. Grundtypen sind logische Verschiebung, arithmetische Verschiebung und zyklische Rotation.

Bei einer linken Verschiebung rücken Bits nach links; die frei werdenden niederwertigen Bits werden mit Null

Sprachspezifische Details unterscheiden sich. In C und C++ ist das Verschieben um eine Anzahl größer oder gleich

Anwendungen der Bitverschiebung umfassen das Setzen, Löschen oder Extrahieren von Bitfeldern (Maskierung), schnelle Multiplikationen oder Divisionen

gefüllt.
Bei
einer
rechten
Verschiebung
hängt
die
Füllung
von
der
Art
ab:
Bei
einer
logischen
Verschiebung
werden
neue
höchstwertige
Bits
mit
Null
gefüllt;
bei
einer
arithmetischen
Verschiebung
wird
das
Vorzeichenbit
(bei
Zweierkomplement)
von
links
her
fortgeführt,
um
das
Vorzeichen
beizubehalten.
Zyklische
Rotation
füllt
verschobene
Bits
wieder
an
der
gegenüberliegenden
Seite
ein.
der
Breite
des
Typs
undefiniertes
Verhalten,
ebenso
bei
Verschiebungen
mit
negativen
Rändern.
Java
bietet
drei
Operatoren:
<<
(linksverschieben),
>>
(rechtsverschieben
mit
Vorzeichenerweiterung)
und
>>>
(rechtsverschieben
ohne
Vorzeichenerweiterung).
Die
Verschiebungsdistanz
wird
bei
int
auf
dist
modulo
32
und
bei
long
auf
dist
modulo
64
reduziert.
Python
verwendet
unbegrenzte
Ganzzahlen;
Rechtsverschiebung
ist
arithmetisch
bei
negativen
Zahlen,
und
die
Größe
eines
Werts
wächst
unbegrenzt
mit
der
Verschiebungsanzahl.
durch
Zweierpotenzen
sowie
Low-Level-Optimierungen
in
Hardware-nahen
Codes.
In
der
Praxis
hängen
Leistung
und
Verhaltensweise
stark
von
der
Zielarchitektur
und
vom
verwendeten
Compiler
ab.