In more detail
Key rules: aᵐ × aⁿ = aᵐ⁺ⁿ, aᵐ / aⁿ = aᵐ⁻ⁿ, (aᵐ)ⁿ = aᵐⁿ, a⁰ = 1 and a⁻ⁿ = 1/aⁿ, so 2⁻³ = 0.125. A fractional exponent is a root: 27^(1/3) = 3. Powers of two give 2¹⁰ = 1,024, which is why a kibibyte is 1,024 bytes. Repeated multiplication by the same factor is exponential growth, the engine of compound interest.
Why it matters
Notation trips people up. By convention the exponent is applied before the minus sign, so −2² = −4 while (−2)² = 4. In Python, JavaScript and C the caret ^ is bitwise XOR, not a power: 2 ^ 3 is 1. Python and JavaScript use **, C uses pow(), while spreadsheets use ^ for powers.
Example
1,000 growing at 5% a year for 10 years: 1,000 × 1.05¹⁰ = 1,628.89.
>>> 2 ** 10
1024
>>> 1000 * 1.05 ** 10
1628.894626777442
>>> -2 ** 2
-4
>>> 2 ^ 3
1
Common confusion
A Logarithm is the inverse operation: it answers "what exponent gives this number?". If 2¹⁰ = 1,024, then log₂ 1,024 = 10.