If you want to compute the value of 3*3*3*3
you can do
so using the multiplication operator, but it would be clearer and
faster if you used the exponentiation operator
**. The mode of its left operand can be
either REAL
or INT
, but its right operand
must have mode INT
. If both its operands have the mode
INT
, the yield will have mode INT
(in this
case the right operand must not be negative), otherwise the yield will
have mode REAL
. Thus the formula 3**4
yields the value 81
, but 3.0**4
yields the
value 81.0
. Its priority is 8. In a formula
involving exponentiation as well as multiplication or division, the
exponentiation is elaborated first. For example, the formula
3*2**4
yields 48
, not 1296
.
Every dyadic operator has a priority of between
1 and 9 inclusive, and all monadic operators
bind more tightly than all dyadic operators. For example, the formula
-2**2
yields 4
, not -4
. Here
the monadic minus is elaborated first, followed by the
exponentiation.
INT two = 2, m2 = -2; REAL x = 3.0 / 2.0, y = 1.0what is the value and mode yielded by the following formulæ? Ans
two ** -m2
x ** two + y ** two
3 * m2 ** two
Sian Mountbatten 2012-01-19