SA0053:ビット単位のシフトが大きすぎます
オペランドのビット単位シフト(ビットシフト)を行う場合、オペランドのデータ型幅を超えていないか判断します。
理由:移動操作がデータ型の幅を超えると、定数が作成されます 0
。
回転シフトがデータ型の幅を超えている場合、読み取りが困難であるため、回転値を切り捨てる必要があります。
重要性:高い
例 63. 例
PROGRAM PLC_PRG VAR byTemp1 : BYTE; wTemp2 : WORD; dwTemp3 : DWORD; lwTemp4 : LWORD; END_VAR
byTemp1 := SHR(byTemp1, BYTE#25); wTemp2 := SHL(wTemp2, BYTE#45); dwTemp3 := ROR(dwTemp3, BYTE#78); lwTemp4 := ROL(lwTemp4, BYTE#111);
での出力 メッセージ ビュー:
SA0053: ビット単位のシフトが大きすぎます