How it's written: each place is a power of eight — units, eights, sixty-fours, five-twelves. Programming languages mark octal literals so they aren't mistaken for decimal: modern code writes 0o3752, classic C just used a leading zero (03752) — a design so easy to trip over that most new languages abandoned it.
Whole numbers, decimals, and negatives all work. Octal uses only the digits 0 through 7 — every place is a power of eight.
Every digit times its power of eight — whole-part places in blue, fraction places in orange. Shown for up to 16 places.
A neat guarantee: every octal fraction terminates in decimal. The denominators are powers of eight — pure powers of two — and decimal digests those cleanly: 0.1 in octal is exactly 0.125, and 0.7 is exactly 0.875. The reverse direction is far less tidy, as the first tab shows.
Digits 0 through 7, an optional fraction point, and an optional leading minus. A digit of 8 or 9 is the classic giveaway that a number was never octal.
Same rules, smaller base: carry whenever a column reaches eight instead of ten, borrow eight instead of ten. 7 + 1 rolls over to 10 the way 9 + 1 does in decimal. Multiplication builds one partial product per digit of the second number, each shifted one place left, then adds them up.
Add, subtract, or multiply two octal whole numbers — and watch the carries work column by column, just like school arithmetic one base down.
The same bits, chunked two ways: groups of three read off the octal digits, groups of four read off the hex digits. No arithmetic needed — just regrouping.
Digits needed to write this number in each base — the trade-off between a tiny alphabet and a short numeral.
Why octal faded: early machines like the PDP-8 used word sizes divisible by three, so octal fit perfectly. Once the 8-bit byte won, a byte split evenly into two hex digits but awkwardly into octal — and hex took over. Octal survives where it always shone: Unix permission bits, and the four-digit transponder squawk codes every aircraft dials in (0–7 only; 7700 means emergency).
This is why octal exists: every octal digit corresponds to exactly one group of three binary bits, so programmers could read machine words at a glance. Enter a number in any base and watch it line up.
The ones you'll actually meet: 755 for directories and scripts anyone may run, 644 for ordinary files anyone may read, 600 for private files like SSH keys, 700 for private directories, and 777 for "everyone can do everything" — which is almost always a mistake waiting to be exploited. This octal encoding has been in Unix since the early 1970s and shows no sign of leaving.
Unix file permissions are three octal digits — owner, group, others — where read is 4, write is 2, and execute is 1. Type a mode or click the boxes; they stay in sync.