SHR

Descripción general

Operador IEC para desplazamiento a la derecha a nivel de bit de un operando.

erg:= SHR (in, n)

in: operando que se debe desplazar a la derecha

n: número de bits por el que in se desplaza a la derecha

NOTA: Si n sobrepasa el ancho del tipo de datos, dependerá del sistema de destino cómo se rellenarán los operandos BYTE, WORD, DWORD y LWORD. Algunos causan que se rellenen con ceros (0) y otros con n MOD <register width>.

Ejemplos

El ejemplo siguiente en notación hexadecimal muestra los resultados de la operación aritmética en función del tipo de la variable de entrada (BYTE o WORD).

Ejemplo en ST

PROGRAM shr_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:=SHR(in_byte,n); (* Result is 16#11, 2#00010001 *)
erg_word:=SHR(in_word,n); (* Result is 16#0011, 2#0000000000010001 *)

Ejemplo en FBD

Ejemplo en IL

LD     in_byte
SHR    2
ST     erg_byte