Order of operations

From Wikipedia, the free encyclopedia

In arithmetic and algebra, when a number or expression is both preceded and followed by a binary operation, a rule is required for which operation should be applied first. From the earliest use of mathematical notation, multiplication took precedence over addition, whichever side of a number it appeared on. Thus 3 + 4 • 5 = 5 • 4 + 3 = 23. When exponents were first introduced, in the 16th and 17th centuries, exponents took precedence over both addition and multiplication, and could only be placed as a superscript to the right of their base. Thus 3 + 5 2 = 28 and 3 • 5 2 = 75. To change the order of operations, a vinculum (an overline or underline) was originally used. Today we use parentheses. Thus, if we want to force addition to precede multiplication, we write (3 + 4) • 5 = 35.

Contents

[edit] The standard order of operations

The order of operations is expressed in the following chart.

exponents and roots
multiplication and division
addition and subtraction

In the absence of parentheses, do all exponents and roots first. Stacked exponents must be done from the top down. Root symbols have a bar (called vinculum) over the radicand which acts as a symbol of grouping. After taking all exponents and roots, then do all multiplication and division. Finally, do all addition and subtraction.

It is helpful to treat division as multiplication by the reciprocal and subtraction as addition of the opposite. thus 3/4 = 3 ÷ 4 = 3 • ¼ and -4 + 3 is the sum of negative four and positive three.

If an expression involves parentheses, then do the arithmetic inside the innermost pair of parentheses first and work outward, or use the distributive law to remove parentheses.


[edit] Examples from arithmetic

1. Evaluate subexpressions contained within parentheses, starting with the innermost expressions. (Brackets [ ] are used here to indicate what is evaluated next.)
(4+10/2)/9=(4+[10/2])/9=[4+5]/9=1 \,
2. Evaluate exponential powers; for iterated powers, start from the right:
2^{3^2}=2^{[3^2]}=[2^9]=512 \,
3. Evaluate multiplications and divisions, starting from the left:
8/2\times3=[8/2]\times3=[4\times3]=12 \,
4. Evaluate additions and subtractions, starting from the left:
7-2-4+1=[7-2]-4+1=[5-4]+1=[1+1]=2 \,
5. Evaluate negation on the same level as subtraction, starting from the left:[1]
-3^2=-[3^2]=-9 \,

In the United States, the acronym PEMDAS (for Parentheses, Exponentiation, Multiplication/Division, Addition/Subtraction) is used instead, sometimes expressed as the mnemonic "Please Excuse My Dear Aunt Sally" or "Please Excuse My Deadly Angry Samurai."

In Canada, an acronym BEDMAS is often used as a mnemonic for Brackets, Exponents, Division, Multiplication, Addition, and Subtraction.

In the UK, Australia and New Zealand, the acronym BODMAS is commonly used for Brackets, Orders, Division, Multiplication, Addition, Subtraction. Since multiplication and division are of the same rank, this is sometimes written as BOMDAS, BIDMAS or BIMDAS where I stands for Indices.

Warning: Multiplication and division are of equal precedence, and addition and subtraction are of equal precedence. Using any of the above rules in the order addition first, subtraction afterward would give the wrong answer to

10 - 3 + 2 \,

The correct answer is 9, which is best understood by thinking of the problem as the sum of positive ten, negative three, and positive two.

It is usual, wherever you need to calculate operations of equal precedence to work from left to right. The following rules of thumb are useful:

First: perfom any calculations inside parentheses (brackets)

Second: Next perform all multiplication and division, working from left to right

Third: Lastly perform all addition and subtraction, working from left to right

However, with experience, the commutative law, associative law, and distributive law allow shortcuts. For example,

17 \times 24 / 12 is much easier when worked from right to left.

[edit] More examples

  • Given:
3-(5-(7+1))^2\times(-5)+3 \,
  • Evaluate the innermost subexpression (7 + 1):
3-(5-8)^2\times(-5)+3 \,
  • Evaluate the subexpression within the remaining parentheses (5 − 8):
3-(-3)^2\times(-5)+3 \,
  • Evaluate the power of (−3)2:
3-9\times(-5)+3 \,
  • Evaluate the multiplication 9 × (−5):
3-(-45)+3 \,
  • Evaluate the subtraction 3 − (−45):
48 + 3 \,
  • Evaluate the addition 48 + 3:
48 + 3 = 51 \,

[edit] Proper use of parentheses and other grouping symbols

When restricted to using a straight text editor, parentheses (or more generally "grouping symbols") must be used generously to make up for the lack of graphics, like square root symbols. Here are some rules for doing so:

1) Whenever there is a fraction formed with a slash, put the numerator (the number on top of the fraction) in one set of parentheses, and the denominator (the number on the bottom of the fraction) in another set of parentheses. This is not required for fractions formed with underlines:

y = (x+1)/(x+2)

2) Whenever there is an exponent using the caret (^) symbol, put the base in one set of parentheses, and the exponent in another set of parentheses:

y = (x+1)^(x+2)

3) Whenever there is a trig function, put the argument of the function, typically shown in bold and/or italics, in parentheses:

y = sin(x+1)

4) The rule for trig functions also applies to any other function, such as square root. That is, the argument of the function should be contained in parentheses:

y = sqrt(x+1)

5) An exception to the rules requiring parentheses applies when only one character is present. While correct either way, it is more readable if parentheses around a single character are omitted:

y = (3)/(x) or y = 3/x
y = (3)/(2x) or y = 3/(2x)
y = (x)^(5) or y = x^5
y = (2x)^(5) or y = (2x)^5
y = (x)^(5z) or y = x^(5z)

Calculators generally require parentheses around the argument of any function. Printed or handwritten expressions sometimes omit the parentheses, provided the argument is a single character. Thus, a calculator or computer program requires:

y = sqrt(2)
y = tan(x)

while a printed text may have:

y = sqrt 2
y = tan x.

6) Whenever anything can be interpreted multiple ways, put the part to be done first in parentheses, to make it clear.

7) You may alternate use of the different grouping symbols (parentheses, brackets, and braces) to make expressions more readable. For example:

y = { 2 / [ 3 / ( 4 / 5 ) ] }

is more readable than:

y = ( 2 / ( 3 / ( 4 / 5 ) ) )

Note that certain applications, like computer programming, will restrict you to certain grouping symbols.

[edit] Special cases

In the case of a factorial in an expression, it is evaluated before exponents and roots, unless grouping symbols dictate otherwise. When new operations are defined, they are generally presumed to take precedence over other operations, unless overridden by grouping symbols.

In the case where repeated operators of the same type are used, such as in

a / b / c

the expression is evaluated from left to right and is said to associate to the left. It is therefore equal to

(a / b) / c.

With index notation for exponentiation, however, exponents are evaluated from right to left.

[edit] Subtle difference between numeric literals and variables

Some computer programming languages or computer programs parse numeric literals differently than expressions involving variables. The most common place where this occurs is when you mix negation with exponentiation. For example:

-2 would be parsed as (-2), "the number negative two", as opposed to (-(2)), "the negation of the number two". If they also include an exponentiation operator with higher precedence than the negation operator, these two expressions lead to surprisingly different results:

-2^2 = (-2)^2 = 4

compared to:

let a = 2
-a^2 = -((a)^2) = -(2^2) = -4

The same thing can also occur with complex numbers and numeric literals. For example, 1+2i, could be parsed a number of ways:

(1+2i) "the complex number 1+2i"
(1)+(2i) "the integer 1 added to the imaginary number 2i"
(1)+((2)*(i)) "the integer 1 added to the integer 2 multiplied by the imaginary number i"

There are a few reasons this is done:

  • It can simplify parsing of expressions. The programming language C doesn't go this route. On a C implementation where ints range from -32768 to 32767 inclusive, the number 32768 will be treated as the type long int instead of int. To express the number -32768 of type int, a programmer has to either use ((int)-32768), which can't be evaluated by the C preprocessor, or tricks like (-32767 - 1), which can. Java doesn't go this route either but it has to hack the negation operator and delay the conversion of literals to integer types to get this to work as expected.
  • Some computer arithmetic doesn't follow math convention and requires this sort of thing to be done (e.g. one that differentiates between -0 (negative 0), 0 (plain 0), and +0 (positive 0) but has differing rules for the unary - or unary + operators). The programming language C requires that -0 evaluate to a 0 without the sign bit set. If the programmer actually wanted to express the value 0 with the sign bit set, they have to jump through all sorts of hoops to generate it.


[edit] Calculators

Different calculators follow different orders of operations. Cheaper calculators without a stack work left to right without any priority given to different operators, for example giving

1 + 2 \times 3 = 9, \;

while more sophisticated calculators will use a more standard priority, for example giving

1 + 2 \times 3 = 7. \;

The Microsoft Calculator program uses the former in its standard view and the latter in its scientific view.

Calculators may associate exponents to the left or to the right depending on the model. For example, the expression a \wedge b \wedge c on the TI-92 and TI-30XII (both Texas Instruments calculators) associates two different ways:

The TI-92 associates to the right, that is

a \wedge b \wedge c=a \wedge (b \wedge c) = a^{(b \wedge c)} = a^{(b^{c})} = a^{b^{c}}

whereas, the TI-30XII associates to the left, that is

a \wedge b \wedge c=(a \wedge b) \wedge c=(a^{b})^{c}

[edit] Mathematical precedence

Most programming languages conform to mathematical order of operations[2]. The order in C-style languages is as follows:

1 () [] -> . :: ++ -- Grouping
2  ! ~ ++ -- - + * & Logical negation
3 * / % Multiplication, division, modulus
4 + - Addition and subtraction
5 << >> Bitwise shift left and right
6 < <= > >= Comparisons: less-than, ...
7 ==  != Comparisons: equal and not equal
8 & Bitwise AND
9 ^ Bitwise exclusive OR
10 | Bitwise inclusive (normal) OR
11 && Logical AND
12 || Logical OR
13 = += -= *= /= %= &= |= ^= <<= >>= Assignment operators

Examples:

  •  !A + !B ========> (!A) + (!B)
  • ++A + !B ========> (++A) + (!B)
  • A * B + C =======> (A * B) + C
  • A AND B OR C ====> (A AND B) OR C

[edit] References and notes

  1. ^ Some programs, notably Microsoft Excel, give a higher priority to negation than to exponentiation, which results in -3^2 = (-3)^2 = 9. [1]
  2. ^ The logical bitwise operators in C (and all programming languages that borrowed precedence rules from C) are known to have incorrect precedence (i.e. they should be placed above the comparison operators) due to a historical quirk and backwards compatibility with that quirk. [2]

[edit] See also

[edit] External links