SHR

概述

用于操作数的逐位右移位的 IEC 操作符。

erg:= SHR (in, n)

in:将向右移位的操作数

nin 向右进行移位的位数

注意: 如果 n 超过了数据类型宽度,则取决于目标系统如何填充 BYTE, WORD, DWORD 和 LWORD 操作数。部分目标设备将以零 (0) 填充,而有些设备则以 n MOD <register width> > 填充。

示例

以下十六进制表示法的示例表明了算术运算的结果取决于输入变量的类型(BYTE 或 WORD)。

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

FBD 中的示例

G-SE-0024314.1.gif-high.gif

 

 

IL 中的示例

LD     in_byte
SHR    2
ST     erg_byte