Order of operations
From Wikipedia, the free encyclopedia
In algebra and computer programming, when a number or expression is both preceded and followed by an operator such as minus or times, a rule is needed to specify which operator should be applied first; this rule is known as a precedence rule, or more informally order of operation. From the earliest use of mathematical notation[citation needed], 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 be placed only 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 one uses parentheses (). Thus, if one wants to force addition to precede multiplication, one writes (3 + 4) × 5 = 35.
Contents |
[edit] The standard order of operations
The standard order of operations, or precedence, is expressed in the following chart.
-
-
- exponents and roots
- multiplication and division
- addition and subtraction
-
In the absence of parentheses, horizontal fraction lines, a bar over a radicand, or other symbols of grouping, do all exponents and roots first. Stacked exponents must be done from the top down. 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 3 − 4 = 3 + (−4), that is, the sum of positive three and negative four.
If an expression involves parentheses, then do the arithmetic inside the innermost pair of parentheses first and work outward. Root symbols have a bar (called vinculum) over the radicand which acts as a symbol of grouping: . A horizontal fractional line also acts as a symbol of grouping: .
The order in which the unary operator − (usually read "minus") acts is often problematical. In written or printed mathematics, − 32 = − (32) = − 9, but in some applications and programming languages, notably the application Microsoft Office Excel and the programming language bc, unary operators have a higher priority than binary operators, that is, the unary minus (negation) has higher precedence than exponentiation, so in those languages − 32 = ( − 3)2 = 9, . [3].
[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.)
- 2. Evaluate exponential powers; for iterated powers, start from the right:
- 3. Evaluate multiplications, divisions and of, starting from the left:
- 4. Evaluate additions and subtractions, starting from the left:
- 5. Evaluate negation on the same level as subtraction, starting from the left:[1]
[edit] Acronyms
In the United States, the acronym PEMDAS (for Parentheses, Exponentiation, Multiplication/Division, Addition/Subtraction) is used as a mnemonic, sometimes expressed as the sentence "Please Excuse My Dear Aunt Sally" or one of many other variations. Many such acronyms exist in other English speaking countries, where Parentheses may be called Brackets, and Exponentiation may be called Indices, Powers or Orders. Also, as Multiplication and Division are of equal precedence, M and D may be interchanged; and Of (see example 3, above) is equivalent to Multiplication. With respect to the latter operators, it is usually best to simply work from left to right. This also applies to Addition and Subtraction on most occasions. Thus, we also have BEDMAS, BIDMAS, BIMDAS, BIODMAS, BODMAS, BOMDAS and BPODMAS.
However, all these mnemonics are misleading if the user is not aware that multiplication and division are of equal precedence, as are addition and subtraction. Using any of the above rules in the order addition first, subtraction afterward would give the wrong answer to
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 one needs to calculate operations of equal precedence to work from left to right. The following rules of thumb are useful:
First: perform 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,
is much easier when worked from right to left, where here the answer is 34.
[edit] More examples
- Given:
- Evaluate the innermost subexpression (7 + 1):
- Evaluate the subexpression within the remaining parentheses (5 − 8):
- Evaluate the power of (−3)2:
- Evaluate the multiplication 9 × (−5):
- Evaluate the subtraction 3 − (−45):
- Evaluate the addition 48 + 3:
[edit] Proper use of parentheses and other grouping symbols
This section may contain original research or unverified claims. Please improve the article by adding references. See the talk page for details. (February 2008) |
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) One 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 one 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.
Sometimes a dash or a heavy dot is used as a multiplication sign which has higher precedence than division. For example, , J / kg-K, and are all equivalent.
[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
while more sophisticated calculators will use a more standard priority, for example giving
The Microsoft Calculator program uses the former in its standard view and the latter in its scientific view.
The "cheap" calculator expects two operands and an operator. When the next operator is pressed, the expression is immediately evaluated and the answer becomes the left hand of the next operator. Advanced calculators allow entry of the whole expression, grouped as necessary, and only evaluates when the user uses the equals sign.
Calculators may associate exponents to the left or to the right depending on the model. For example, the expression on the TI-92 and TI-30XII (both Texas Instruments calculators) associates two different ways:
The TI-92 associates to the right, that is
whereas, the TI-30XII associates to the left, that is
An expression like 1/2x is interpreted as 1/(2x) by TI-82, but as (1/2)x by TI-83. While the first interpretation may be expected by some users, only the latter is in agreement with the standard rules stated above.
[edit] Mathematical precedence
Many programming languages use precedence levels that conform to the order commonly used in mathematics, though some, such as APL, have no operator precedence rules (in APL evaluation is strictly right to left).
The logical bitwise operators in C (and all programming languages that borrowed precedence rules from C, for example, C++, Perl and PHP) have a precedence level that the author of the language considers to be less than ideal.[2] The relative precedence levels of operators found in many C-style languages is as follows:
1 | () [] -> . :: | Grouping, scope, array/member access |
2 | ! ~ - + * & sizeof type cast ++x --x | (most) unary operations, sizeof and type casts |
3 | * / % | Multiplication, division, modulo |
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 | ?: | Conditional expression (ternary operator) |
14 | = += -= *= /= %= &= |= ^= <<= >>= | Assignment operators |
Examples:
- !A + !B (!A) + (!B)
- ++A + !B (++A) + (!B)
- A * B + C (A * B) + C
- A || B && C A || (B && C)
- ( A && B == C ) ( A && ( B == C ) )
[edit] References and notes
- ^ Some programs, notably Microsoft Excel and Unix bc, give a higher priority to negation than to exponentiation, which results in -3^2 = (-3)^2 = 9. [1]
- ^ Dennis M. Ritchie: The Development of the C Language. In History of Programming Languages, 2nd ed., ACM Press 1996. [2]
[edit] See also
- Common operator notation (for a more formal description)
- associativity
- commutativity
- distributivity
- operator overloading
- Operator precedence in C and C++