SHL
Opérateur IEC servant à effectuer un décalage bit à bit vers la gauche d'un opérande.
erg:= SHL (in, n)
in
: opérande à décaler vers la gauche.
n
: nombre de bits de décalage de in
vers la gauche.
n
dépasse la largeur du type de données, le remplissage des opérandes BYTE, WORD, DWORD et LWORD dépend du système cible. Certains systèmes ajoutent des zéros (0
), d'autres n MOD <register width>
.
L'exemple suivant illustre les différents résultats de erg_byte
et erg_word
en notation hexadécimale. Le résultat dépend du type de données de la variable d'entrée (BYTE ou WORD), bien que les variables d'entrée in_byte
et in_word
aient les mêmes valeurs.
PROGRAM shl_st
VAR
in_byte : BYTE:=16#45; (* 2#01000101 )
in_word : WORD:=16#0045; (* 2#0000000001000101 )
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=SHL(in_byte,n); (* Result is 16#14, 2#00010100 *)
erg_word:=SHL(in_word,n); (* Result is 16#0114, 2#0000000100010100 *)