MISRA.BITS.NOT_UNSIGNED.PREPRule 5-0-21:Â Bitwise operators shall only be applied to operands of unsigned underlying typeOperand of bitwise operation in a preprocessor directive #if or #elif is not an unsigned integer RationaleRationale Bitwise operations (~, <<, <<=, >>, >>=, &, &=, ^, ^=, | and |=) are not normally meaningful on signed integers or enumeration constants. Additionally, an implementation-defined result is obtained if a right shift is applied to a negative value. Exampleif ( ( uint16_a & int16_b ) == 0x1234U ) // Non-compliant if ( ( uint16_a | uint16_b ) == 0x1234U ) // Compliant if ( ~int16_a == 0x1234U ) // Non-compliant if ( ~uint16_a == 0x1234U ) // Compliant |