Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The intent of the expression in this noncompliant code example is to test the least significant bit of x.

Code Block
bgColor#FFCCCC
x & 1 == 0

Because of operator precedence rules, the expression is parsed as

Code Block
bgColor#FFCCCC
x & (1 == 0)

which evaluates to

Code Block
bgColor#FFCCCC
(x & 0)

and then to 0.

Compliant Solution

...

EXP00-EX1: Mathematical expressions that follow algebraic order do not require parentheses. For instance, in the expression

Code Block
bgColor#ccccff
x + y * z

the multiplication is performed before the addition by mathematical convention. Consequently, parentheses to enforce this would be redundant.

Code Block
bgColor#FFCCCC
x + (y * z)

Risk Assessment

...