|
|
|
|
Octal
|
| |
|
| |
The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. Numerals can be made from binary numerals by grouping consecutive digits into groups of three (starting from the right). For example, the binary representation for decimal 74 is 1001010, which groups into 001 001 010 — so the octal representation is 112.
In decimal systems each decimal place is a base of 10.

Discussion
Ask a question about 'Octal'
Start a new discussion about 'Octal'
Answer questions from other users
|
Encyclopedia
The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. Numerals can be made from binary numerals by grouping consecutive digits into groups of three (starting from the right). For example, the binary representation for decimal 74 is 1001010, which groups into 001 001 010 — so the octal representation is 112.
In decimal systems each decimal place is a base of 10. For example:
-
In octal numerals each place is a power with base 8. For example:
-
By performing the calculation above in the familiar decimal system we see why 112 in octal is equal to 64+8+2 = 74 in decimal.
Octal is sometimes used in computing instead of hexadecimal.
Usage
By Native Americans
The Yuki language in California and the Pamean languages in Mexico have octal systems because the speakers count using the spaces between their fingers rather than the fingers themselves.
In Europe In 1716 King Charles XII of Sweden asked Emanuel Swedenborg to elaborate a number system based on 64 instead of 10. Swedenborg however argued that for people with less intelligence than the king such a big base would be too difficult and instead proposed 8 as base. In 1718 Swedenborg wrote a manuscript, which has not been published: "En ny rekenkonst som om vexlas wid Thalet 8 i stelle then wanliga wid Thalet 10" ("A new arithmetic (or art of counting) which changes at the Number 8 instead of the usual at the Number 10"). The numbers 1-7 are there denoted by the consonants l, s, n, m, t, f, u (v) and zero by the vowel o. Thus 8 = "lo", 16 = "so", 24 = "no", 64 = "loo", 512 = "looo" etc. Numbers with consecutive consonants are pronounced with vowel sounds between in accordance with a special rule.
In fiction
- The fictional alien felinoid species Kilrathi of the Wing Commander universe count in octal, since their paws have four toes instead of 5.
- The Octospider species of Rama Revealed and the computer game RAMA use a colour code based on octal system, and its comprehension is a puzzle of the game scenario.
- The Alterans from Stargate SG-1 used octal, even though they had ten fingers. It's possible that they counted the gaps between each finger, ignored the thumb on each hand, or used the thumb as a base-2 counter (as on an abacus) allowing them to count up to 30 (24 in decimal) on their hands.
- The satirist Tom Lehrer famously remarked in his song parodying new math that "base 8 is just like base 10... if you're missing two fingers."
- In the first-person shooter Prey, numerical codes to open doors are entered in octal.
- The Tau race in the Warhammer 40,000 universe use the octal system.
- In The Beekeeper's Apprentice, Laurie R. King's first Sherlock Holmes pastiche featuring Mary Russell, base eight math played a key role in solving the mystery.
- In the Star Wars universe, the alien race known as the Hutts counts in base eight, as they only have eight fingers.
In computers
Octal is sometimes used in computing instead of hexadecimal, perhaps most often in modern times in conjunction with file permissions under Unix systems (see chmod). It has the advantage of not requiring any extra symbols as digits (the hexadecimal system is base-16 and therefore needs six additional symbols beyond 0–9). It is also used for digital displays.
At the time when octal originally became widely used in computing, systems such as the IBM mainframes employed 24-bit (or 36-bit) words. Octal was an ideal abbreviation of binary for these machines because eight (or twelve) digits could concisely display an entire machine word (each octal digit covering three binary digits). It also cut costs by allowing Nixie tubes, seven-segment displays, and calculators to be used for the operator consoles; where binary displays were too complex to use, decimal displays needed complex hardware to convert radixes, and hexadecimal displays needed to display letters.
All modern computing platforms, however, use 16-, 32-, or 64-bit words, with eight bits making up a byte. On such systems three octal digits would be required, with the most significant octal digit inelegantly representing only two binary digits (and in a series the same octal digit would represent one binary digit from the next byte). Hence hexadecimal is more commonly used in programming languages today, since a hexadecimal digit covers four binary digits and all modern computing platforms have machine words that are evenly divisible by four. Some platforms with a power-of-two word size still have instruction subwords that are more easily understood if displayed in octal; this includes the PDP-11. The modern-day ubiquitous x86 architecture belongs to this category as well, but octal is almost never used on this platform.
The prefix or suffix customarily used to represent an octal number is "o" (i.e. o73), as binary and hexadecimal are represented by 'b' and 'h' or 'x' respectively, although 'q' is also seen as a way to make it more visually distinct from zero. Sometimes octal numbers are represented by preceding a value with a 0 (e.g. in Python 2.x or JavaScript 1.x - although it is now deprecated in both).
Conversion between bases
For more information and other bases, see Conversion among bases.
Decimal to Octal conversion
Method of successive division by 8
To convert integer decimals to octal, divide the original number by the largest possible factor of 8 and successively divide the remainders by successively smaller factors of 8 until the factor is 0. The octal representation is formed by the quotients, written in the order generated by the algorithm.
For example, to convert 12510 to octal:
- 125 / 8^2 = 1
- 125 − ((8^2)*1) = 61
- 61 / 8^1 = 7
- 61 − ((8^1)*7) = 5
- Thus: 12510 = 1758
Another example:
- 900 / 8^3 = 1
- 900 − ((8^3)*1) = 388
- 388 / 8^2 = 6
- 388 − ((8^2)*6) = 4
- 4 / 8^1 = 0
- 4 − ((8^1)*0) = 4
- 4 / 8^0 = 4
- Thus: 90010 = 16048
Method of successive multiplication by 8
To convert a decimal fraction to octal, multiply by 8; the integer part of the result is the first digit of the octal fraction. Repeat the process with the fractional part of the result, until it is null or within acceptable error bounds.
Example: Convert 0.1640625 to octal:
- 0.1640625 x 8 = 1.3125 = 1 + 0.3125
- 0.3125 x 8 = 2.5 = 2 + 0.5
- 0.5 x 8 = 4.0 = 4 + 0
- Thus: 0.164062510 = 0.1248
These two methods can be combined to handle decimal numbers with both integer and fractional parts, using the first on the integer part and the second on the fractional part.
Octal to Decimal conversion
To convert a number k to decimal, use the formula that defines its base-8 representation:
Example: Convert 7648 to decimal:
- 7648 = 7 x 8² + 6 x 8¹ + 4 x 8° = 448 + 48 + 4 = 50010
For double-digit octal numbers this method amounts to multiplying the lead digit by 8 and adding the second digit to get the total.
Example: 658 = 6x8 + 5 = 5310
Octal to Binary Conversion
To convert octal to binary, replace each octal digit by its binary representation.
Example: Convert 518 to binary:
- 58 = 1012
- 18 = 0012
- Thus: 518 = 101 0012
Binary to Octal conversion
The process is the reverse of previous algorithm. The binary digits are grouped by threes, starting from the decimal point and proceeding to the left and to the right. (Add leading or trailing 0s to fill out the last group of 3 if necessary.) Then replace each trio with the equivalent octal digit.
For instance, convert binary 1010111100 to octal:
-
Thus 10101111002 = 12748
Octal to Hexadecimal conversion
The conversion is made in two steps using binary as an intermediate base. Octal is converted to binary and then binary to hexadecimal, grouping digits by fours, which correspond each to a hexadecimal digit.
For instance, convert octal 1057 to hexadecimal:
- To binary:
-
- then to hexadecimal:
-
Thus 10578 = 22F16
Hexadecimal to Octal conversion
Reverse the previous algorithm.
See also
External links
-
-
- for Decimal/Octal Numerals (JavaScript, GPL)
- to convert ASCII text to Octal numbers
- is a numeral system enabling simple visual calculation in octal.
|
| |
|
|