When numbers exceed their box
Fixed width integer types hold values only within a limited range. When a computation produces a result beyond that range, overflow occurs. In many languages the value silently wraps around, giving a wrong but unflagged answer, which is one of the most dangerous classes of bug.
Where it bites
- Summing large arrays whose total exceeds the type's maximum.
- Computing a midpoint as the sum of two large indices before dividing, a famous binary search bug.
- Multiplying two values that individually fit but whose product does not.
Defensive strategies
- Check before you act: before adding, test whether the operands would exceed the maximum; before multiplying, test against the limit by division.
- Compute midpoints safely as the low index plus half the difference, avoiding the large intermediate sum.
- Widen the type: promote to a larger integer for the risky operation, then narrow back.
- Work modulo a value when only the remainder matters, which keeps everything bounded by design.
- Prefer languages or modes that trap on overflow rather than wrapping silently.
The core habit is to reason about the maximum a value can reach, not just its typical size.
Key idea
Overflow happens when a result exceeds a fixed width type and often wraps silently; guard against it by checking bounds first, computing midpoints safely, widening types, or working modulo a value.