1.5.3 Normal
There are several normal operators which return the result defined for each:
expression1
+
expression
The result of this is the sum of the two expressions.expression1
-
expression2
The result of this is the value of expression2 subtracted from expression1.expression1
*
expression2
The result of this is the value of expression1 multiplied by expression2.expression1
/
expression2
The result of this is the value of expression1 divided by expression2.expression1
%
expression2
The result of this is the value of the remainder after dividing expression1 by expression2. Also called the modulo operator.expression1
&
expression2
Returns a bitwise AND operation done on expression1 and expression2. The result is a value the same size as the expressions with its bits modified using the following rules: Both bits must be 1 (on) to result in 1 (on), otherwise the result is 0 (off).
e1 e2 Result 0 0 0 0 1 0 1 0 0 1 1 1
expression1|
expression2
Returns a bitwise OR operation done on expression1 and expression2. The result is a value the same size as the expressions with its bits modified using the following rules: Both bits must be 0 (off) to result in 0 (off), otherwise the result is 1 (on).
e1 e2 Result 0 0 0 0 1 1 1 0 1 1 1 1
expression1^
expression2
Returns a bitwise XOR operation done on expression1 and expression2. The result is a value the same size as the expressions with its bits modified using the following rules: If both bits are the same, then the result is 0 (off), otherwise the result is 1 (on).
e1 e2 Result 0 0 0 0 1 1 1 0 1 1 1 0
expression1>>
shift_value
Returns expression1 with its bits shifted to the right by the shift_value. The leftmost bits are replaced with zeros if the value is nonnegative or unsigned. This result is the integer part of expression1 divided by 2 raised to the power of shift_value. If expression1 is signed, then the result is implementation specific.expression1
<<
shift_value
Returns expression1 with its bits shifted to the left by the shift_value. The rightmost bits are replaced with zeros. This result is the value of expression1multiplied by the value of 2 raised to the power of shift_value. If expression1 is signed, then the result is implementation specific.