Skip to main content

SA0053: Zu große bitweise Verschiebung

Ermittelt bei bitweiser Verschiebung (Bitverschiebung) von Operanden, ob die Datentypbreite des Operanden überschritten wurde.

Begründung: Wenn eine Verschiebeoperation über die Datentypbreite hinausgeht, dann erzeugt man eine Konstante 0.

Wenn eine Rotationsverschiebung über die Datentypbreite hinausgeht, dann ist das schwer zu lesen und der Rotationswert sollte deswegen gekürzt werden.

Wichtigkeit: Hoch

Beispiel 63. Beispiel
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);

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0053: Zu große bitweise Verschiebung