SHL

Vue d'ensemble

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.

NOTE : lorsque 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>.
NOTE : le type de données de la variable d'entrée détermine le nombre de bits à utiliser pour l'opération arithmétique. Avec une constante comme variable d'entrée, c'est le type de données de taille la plus faible qui est considéré. L'opération arithmétique ne dépend en aucune manière du type de données de la variable de sortie.

Exemples

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.

Exemple en langage ST

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 *)

Exemple en langage FBD

Exemple en langage IL

LD     in_byte
SHL    2
ST     erg_byte