Understanding octal and decimal conversion
Octal is a base-8 number system that uses digits 0 through 7. Decimal is base 10 and uses digits 0 through 9. The symbols may look similar, but position values differ: in octal, each place is eight times the place to its right. The octal value 377 therefore means 3×8² + 7×8 + 7, which equals 255 in decimal. Converting accurately requires treating the input as a base-8 integer rather than as ordinary decimal text.
This converter uses BigInt rather than the JavaScript Number type. Number stores integers exactly only up to 9,007,199,254,740,991. File permission masks, large identifiers, bit fields, archival data, or programming exercises can exceed that boundary. BigInt keeps every digit exact, so an octal value with dozens or hundreds of digits can be converted and converted back without rounding.
How to use the octal converter
The tool is intentionally strict about digits but flexible about harmless formatting.
- Choose Octal to decimal or Decimal to octal according to the representation you currently have.
- Enter one whole integer. A leading plus or minus sign is allowed. Octal input may include the familiar 0o prefix.
- Use spaces or underscores as visual separators if a long value is difficult to read; they are removed before parsing.
- Press Calculate and copy the exact result. The result does not use scientific notation or rounded digits.
- For critical work, convert the result back in the opposite direction and compare it with the normalized original value.
Octal and decimal examples
These examples cover common permissions, boundaries, negative values, and exact large-integer conversion.
| Input | Output | Explanation |
|---|---|---|
| 17₈ | 15₁₀ | One group of eight plus seven units equals fifteen. |
| 377₈ | 255₁₀ | This is the largest value that fits in one unsigned byte. |
| 755₈ | 493₁₀ | A familiar Unix permission pattern interpreted as a numeric octal value. |
| 1000₈ | 512₁₀ | A one followed by three octal zeros represents 8³. |
| -20₈ | -16₁₀ | The sign applies to the whole integer; the magnitude 20₈ equals sixteen. |
| 18446744073709551615₁₀ | 1777777777777777777777₈ | A 64-bit unsigned maximum converted exactly without Number rounding. |
Input rules and notation
Octal input accepts digits 0 through 7, an optional sign, and an optional 0o or 0O prefix. The older convention of treating every leading-zero number as octal is deliberately not used because it is ambiguous in modern code and documentation. Enter 0755 if that is the text you have, but understand that the first zero is simply another octal digit; 0o755 is the explicit form.
Decimal input accepts only a whole base-10 integer. Fractions, exponents, commas, currency symbols, and decimal points are rejected. Spaces and underscores may appear as visual grouping characters because they do not change the mathematical value. Output is normalized: unnecessary leading zeros and a leading plus sign are removed.
- Valid octal digits: 0, 1, 2, 3, 4, 5, 6, and 7.
- Valid decimal digits: 0 through 9, with no fractional part.
- Negative values are supported in both directions.
- There is no practical precision limit other than browser memory for extremely long input.
How base-8 conversion works
When parsing octal, the tool validates the sign, removes the optional prefix and separators, then constructs an exact BigInt from the base-8 digits. Conceptually, the parser starts at zero and repeatedly multiplies the accumulated value by eight before adding the next digit. That positional process works for any input length.
Decimal-to-octal conversion repeatedly divides the magnitude by eight and records the remainders. Each remainder is one octal digit from 0 through 7. Reading the remainders in reverse produces the final representation. BigInt provides the same exact operation directly through base formatting, while the sign is preserved separately.
The converter performs integer conversion only. It does not implement octal fractions such as 0.1₈, floating-point rounding, or two’s-complement interpretation. A minus sign means a mathematical negative integer, not a fixed-width bit pattern.
Where octal values appear
Octal is less common in everyday arithmetic but remains useful where three-bit groups have a natural meaning.
Unix permissions
Interpret permission modes such as 644, 755, or 2750 numerically, and verify values generated by scripts or deployment tools.
Programming language literals
Check base-8 constants in source code, test cases, parsers, and serialization formats that use an explicit 0o prefix.
Legacy systems and documentation
Read values from older manuals, minicomputer material, embedded systems, or file formats that historically preferred octal.
Bit-group reasoning
Each octal digit represents exactly three bits, making octal convenient for compactly describing grouped binary flags.
Common mistakes and boundaries
Octal errors are usually caused by a digit that looks ordinary in decimal but is illegal in base 8.
Using 8 or 9
The digits 8 and 9 do not exist in octal. If they appear, confirm whether the source value is actually decimal or whether it was copied incorrectly.
Assuming leading zero changes the base
This converter follows the selected direction, not legacy language rules. A leading zero does not silently choose octal mode.
Using floating-point input
Values such as 12.5 or 1e6 are rejected because the tool handles exact integers. Expand exponent notation into ordinary digits first.
Confusing numeric octal with permission text
A permission string like 755 is commonly written without a prefix. Convert it only when you need its numeric value; keep the three digits when passing a mode to Unix tools.
Related conversion choices
Different tools answer different questions about the same digits.
General base converter
Use a general converter for arbitrary bases or mixed alphabets. This page is simpler and stricter for the common octal/decimal pair.
Binary converter
Binary exposes every bit, while one octal digit compresses exactly three binary digits. Convert to binary when individual flags matter.
Two’s-complement converter
A negative sign here is mathematical. Two’s complement instead maps a fixed-width bit pattern to signed and unsigned interpretations.
Bitwise calculator
Base conversion changes notation without changing value. Bitwise operations actively combine or shift fixed-width patterns.