Operation Manual

982 Anhang: Funktionen und Anweisungen
shift() CATALOG
shift(
Ganze_Zahl1
[,
Anzahl_Verschiebungen
])
Ganze_Zahl
Verschiebt die Bits in einer binären ganzen Zahl.
Ganze_Zahl1
kann in jeder Basis eingegeben
werden und wird stets automatisch in eine 32-Bit-
Dualform konvertiert. Ist der Absolutwert von
Ganze_Zahl1
für diese Form zu groß, so wird eine
symmetrische Modulo-Operation ausgeführt, um
sie in den erforderlichen Bereich zu bringen.
Wenn
Anzahl_Verschiebungen
positiv ist, erfolgt die
Verschiebung nach links.
Wenn
Anzahl_Verschiebungen
negativ ist, erfolgt die
Verschiebung nach rechts.
Die Vorgabe ist
ë 1 (Verschiebung um ein Bit
nach rechts).
In einer Rechtsverschiebung wird das ganz rechts
stehende Bit abgeschnitten und als ganz links
stehendes Bit eine 0 oder 1 eingesetzt. Bei einer
Linksverschiebung wird das Bit ganz links
abgeschnitten und 0 als letztes Bit rechts
eingesetzt.
Im Modus Bin base:
shift(0b1111010110000110101)
¸
0b111101011000011010
shift(256,1)
¸
0b1000000000
In Hex base mode:
shift(0h78E)
¸ 0h3C7
shift(0h78E,
ë 2) ¸ 0h1E3
shift(0h78E,2)
¸ 0h1E38
Wichtig:
Geben Sie eine Dual- oder
Hexadezimalzahl stets mit dem Präfix
0b bzw. 0h ein (Null, nicht der
Buchstabe O).
Aus beispielsweise folgender Rechts-
verschiebung:
0b00000000000001111010110000110101
ergibt sich:
0b00000000000000111101011000011010
Das Ergebnis wird gemäß dem jeweiligen
Base-
Modus angezeigt. Führende Nullen werden nicht
angezeigt.
shift(
Liste1
[,
Anzahl_Verschiebungen
])
List
Gibt eine Kopie von
Liste1
zurück, in der die Elemente
um
Anzahl_Verschiebungen
Elemente nach links oder
rechts verschoben sind.
Liste1
bleibt unverändert.
Wenn
Anzahl_Verschiebungen
positiv ist, erfolgt die
Verschiebung nach links.
Wenn
Anzahl_Verschiebungen
negativ ist, erfolgt die
Verschiebung nach rechts.
Die Vorgabe ist
ë 1 (Verschiebung um ein
Element nach rechts).
Dadurch eingeführte neue Elemente am Anfang
bzw. am Ende von
Liste
werden auf “undefiniert”
gesetzt.
Im Modus Dec base:
shift({1,2,3,4})
¸
{undef 1 2 3}
shift({1,2,3,4},
ë 2) ¸
{undef undef 1 2}
shift({1,2,3,4},1)
¸
{2 3 4 undef}
Setzt 0 ein, wenn Bit ganz
links 0 ist und 1, wenn Bit
ganz links 1 ist.
Alle Bits werden nach rechts
verschoben.
Abgeschnitten