SCL SHL — 左移
左移,低位补 0。
移位指令只接受位串:BYTE、WORD、DWORD、LWORD;位宽由 IN 的类型决定。
SHL/SHR 移出的位丢弃,空出的位补 0;ROL/ROR 把移出的位补回另一端,不丢位。
N=0 返回原值;SHL/SHR 的 N≥位宽 结果为 0,ROL/ROR 按位宽取模。
| 需求 | 指令 |
|---|---|
| 左移,低位补 0 | SHL |
| 右移,高位补 0 | SHR |
| 循环左移 | ROL |
| 循环右移 | ROR |
1#HighByte := SHR(IN := #WordValue, N := 8) AND 16#00FF;
2#LowByte := #WordValue AND 16#00FF;
移位只接受位串;Int/Real 要先转换。
SHL/SHR 移出的位丢弃、空位补 0;ROL/ROR 把移出的位补回另一端,不丢位。
SHL/SHR 结果为 0;ROL/ROR 按位宽取模,例如 Word 的 N=17 等价 N=1。
只支持 BYTE/WORD/DWORD/LWORD 位串;Int 要先转 WORD/DWORD。
不是。位串无符号,SHR 高位补 0;有符号数要自己处理符号位。