SHL

IEC 操作:按位左移操作。

erg:= SHL (in, n)

in:按位左移对象。

n:位数量,in将会按照这个数量左移。

提示!

如果 n 能够处理的数据宽度取决于目标系统。 BYTE, WORD, DWORD 以及LWORD 操作将会怎样被填充。一些情况下将会用零填充 (0's),其他的通过n MOD <寄存器宽度>

提示!

请注意,由输入变量的数据类型的位,这是进行算术运算注意到,不正确的量!如果输入变量是一个恒定的最小可能的数据类型的注意。输出变量的数据类型有没有影响所有的算术操作。

参阅以下示例对于十六进制数据的处理你将会得到不同的 erg_byte 以及 erg_word 结果,这取决于输入的数据类型 (BYTE 或者 WORD),尽管输入变量 in_byte 和 in_word 是相同的。

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

FBD 示例:

IL 示例: