Skip to main content

SA0053: Desplazamiento bit a bit demasiado grande

Detecta si se ha excedido o no el ancho del tipo de datos del operando en el caso de un desplazamiento bit a bit (desplazamiento de bits) de operandos

Justificación: si una operación de cambio excede el ancho del tipo de datos, entonces una constante 0 es generado.

Si un cambio de rotación excede el ancho del tipo de datos, entonces es difícil de leer. Por lo tanto, el valor de rotación debe acortarse.

Importancia: Alta

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

Salida en el Mensajes vista:

  • sa_icon_message.png SA0053: Desplazamiento bit a bit demasiado grande