Skip to main content

Compound Operators

Description


    Version 8.10 added compound operators.  These are a special assignment statement that applies the operator to the lvalue that will be assigned.

   lvalue+= 1

    The statement above will increment the variable, in general a compound operator makes the 2 following statements equivalent.

    lvalue op= expr< /EM>

    lvalue = lvalue op expr Compound operators include * + - / AND OR XOR >> <<

Operator precedence does NOT change with a compound operator so that

    x += a << b   '  BAD, as the addition will take precedence over the shift

should not be used, but you should use

   x += (a << b)\

Example

\

i +=
1
' increment i< /FONT>

a AND= &Hffff0fff ' mask
bits 12 to 15 of a

b <<=
5
' shift b left by 5 bits

c OR=
&Hf0 ' set bits
4-7 of c

h *=
10
' multiply h by 10

\

See also

\

\