Skip to main content

SA0053: spostamento bit a bit troppo grande

Quando si esegue lo spostamento bit per bit (spostamento dei bit) degli operandi, determina se la larghezza del tipo di dati dell'operando è stata superata.

Motivo: se un'operazione di spostamento va oltre la larghezza del tipo di dati, viene creata una costante 0.

Se uno spostamento di rotazione supera la larghezza del tipo di dati, è difficile da leggere. Pertanto, il valore di rotazione dovrebbe essere ridotto.

Importanza: Alta

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

Uscita in Messaggi vista:

  • sa_icon_message.png SA0053: Spostamento bit per bit troppo grande