dopisz swój adres do listy:
elementy programu - operatory bit-shift
SHR
Operator bit-shift IEC: Bitowe przesunięcie argumentu w prawo: erg:= SHR (in, n)
in zostaje przesunięte o n bitów w prawo. W przypadku stosowania typu danych bez znaku liczby (BYTE, WORD, DWORD), następuje uzupełnienie zerami od lewej. W typach danych ze znakiem liczby, jak np. INT, przeprowadzane jest natomiast przesunięcie arytmetyczne, tzn. wypełnianie wartością najwyższego bitu.
Poniższy przykład w systemie szesnastkowym ilustruje wynik operacji, przy czym jako zmienne wejściowe służą raz erg_byte typu BYTE, raz erg_word typu WORD.
Przykład w ST:
PROGRAM shr_st
VAR
in_byte : BYTE:=16#45;
in_word : WORD:=16#45;
erg_byte : BYTE;
erg_word : WORD;
n: BYTE :=2;
END_VAR
erg_byte:=SHR(in_byte,n); (* Wynik 11 *)
erg_word:=SHR(in_word,n); (* Wynik 0011 *)
Przykład w IL:
LD 16#45
SHR 2
ST erg_byte
Przykład w FBD:

codesys.pl