SHR

IEC 操作:按位右移操作。

erg:= SHR (in, n)

in:要进行右移操作的数。

n:位数量,in将会右移的数量。

提示!

n能够处理的数据宽度取决于目标系统。 BYTE, WORD, DWORD 以及LWORD 操作将会被什么填充,其中一些将会被零填充 (0's),其他的将会被n MOD <寄存器数据>填充。

提示!

请注意,位的数量,同样在算术运算中要注意的,取决于输入变量的数据类型!如果输入数据是一个常量那么需要注意最小可能的数据类型。输出数据的类型对所用的算术运算没有影响。

参阅以下十六位的示例了解算术运算的结果取决于输入变量的类型 (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 示例:

IL 示例: