Convert octal (base-8) numbers to decimal with step-by-step positional breakdown. Supports 0o prefix, shows binary and hex equivalents, and handles batch conversion of multiple octal values at once.
Type an octal number using digits 0–7. The 0o or 0 prefix used in programming languages is accepted and stripped automatically. Invalid digits (8, 9, letters) are highlighted as errors. For batch mode, enter one octal value per line.
Each octal digit is multiplied by its power of 8 (8⁰, 8¹, 8²…) and summed. The step-by-step panel shows each positional value and the running sum. Results are also displayed in binary and hexadecimal.
Copy the decimal result with one click. In batch mode, all octal values are converted simultaneously and results shown in a table with decimal, binary, and hex columns.
Octal is base-8, using digits 0–7. To convert to decimal: multiply each digit by 8 raised to its positional power (starting from 8⁰ on the right), then sum the results. For example: octal 347 = (3×8²) + (4×8¹) + (7×8⁰) = (3×64) + (4×8) + (7×1) = 192 + 32 + 7 = 231 decimal. This tool shows every step of this positional calculation.
Octal was commonly used in early computing systems because early machines used 6-bit or 12-bit word sizes, which divide neatly into groups of 3 bits (each 3-bit group = one octal digit 0–7). Unix and Linux file permissions are the most common modern use: chmod 755 means Owner: 7 (rwx = 111 binary), Group: 5 (r-x = 101 binary), Others: 5 (r-x = 101 binary). The octal notation compactly represents the three-bit permission flags.
Only the digits 0 through 7 are valid in octal. The digits 8 and 9 do not exist in base-8. A common mistake is treating an octal number as decimal — for example, the number 077 might be interpreted as 77 decimal, but it is 63 decimal in octal. In programming languages, a leading zero typically signals an octal literal (e.g. in C: 077 = 63 decimal), which is why this convention is important to recognise.
Each octal digit corresponds to exactly 3 binary bits: 0=000, 1=001, 2=010, 3=011, 4=100, 5=101, 6=110, 7=111. This makes octal a compact shorthand for binary. For example, binary 101 111 010 = octal 572 directly. While hex (4 bits per digit) is more common in modern computing, octal remains useful in contexts with 3-bit groupings, particularly Unix permissions.
Both are shorthand notations for binary, but with different grouping sizes. Octal groups binary into 3-bit chunks (base 8 = 2³), while hexadecimal groups binary into 4-bit chunks (base 16 = 2⁴). Modern computing mostly uses hex because 4-bit groupings align with 8-bit bytes (2 hex digits = 1 byte), while 3-bit groupings do not align neatly with byte boundaries. However, octal remains standard for Unix/Linux file permissions and is still taught in computer science courses.
In modern programming languages like Python 3 and JavaScript (ES6+), octal literals are written with a 0o prefix (e.g. 0o755). Older languages like C used a single leading zero (e.g. 0755). The 0o prefix was introduced to avoid the ambiguity of leading-zero octal literals in newer languages. This converter accepts both formats and strips the prefix before conversion.