fbpx
Wikipedia

Octal

Numeral systems, bits and Gray code
hex dec oct 3 2 1 0 step
0hex 00dec 00oct 0 0 0 0 g0
1hex 01dec 01oct 0 0 0 1 h1
2hex 02dec 02oct 0 0 1 0 j3
3hex 03dec 03oct 0 0 1 1 i2
4hex 04dec 04oct 0 1 0 0 n7
5hex 05dec 05oct 0 1 0 1 m6
6hex 06dec 06oct 0 1 1 0 k4
7hex 07dec 07oct 0 1 1 1 l5
8hex 08dec 10oct 1 0 0 0 vF
9hex 09dec 11oct 1 0 0 1 uE
Ahex 10dec 12oct 1 0 1 0 sC
Bhex 11dec 13oct 1 0 1 1 tD
Chex 12dec 14oct 1 1 0 0 o8
Dhex 13dec 15oct 1 1 0 1 p9
Ehex 14dec 16oct 1 1 1 0 rB
Fhex 15dec 17oct 1 1 1 1 qA

Octal (base 8) is a numeral system with eight as the base.

In the decimal system, each place is a power of ten. For example:

In the octal system, each place is a power of eight. For example:

By performing the calculation above in the familiar decimal system, we see why 112 in octal is equal to in decimal.

Octal numerals can be easily converted from binary representations (similar to a quaternary numeral system) by grouping consecutive binary digits into groups of three (starting from the right, for integers). For example, the binary representation for decimal 74 is 1001010. Two zeroes can be added at the left: (00)1 001 010, corresponding to the octal digits 1 1 2, yielding the octal representation 112.

The octal multiplication table
× 1 2 3 4 5 6 7 10
1 1 2 3 4 5 6 7 10
2 2 4 6 10 12 14 16 20
3 3 6 11 14 17 22 25 30
4 4 10 14 20 24 30 34 40
5 5 12 17 24 31 36 43 50
6 6 14 22 30 36 44 52 60
7 7 16 25 34 43 52 61 70
10 10 20 30 40 50 60 70 100

Usage edit

In China edit

 
Fuxi's "Earlier Heaven" Arrangement of the Eight Trigrams

The eight bagua or trigrams of the I Ching correspond to octal digits:

  • 0 = ☷, 1 = ☳, 2 = ☵, 3 = ☱,
  • 4 = ☶, 5 = ☲, 6 = ☴, 7 = ☰.

Gottfried Wilhelm Leibniz made the connection between trigrams, hexagrams and binary numbers in 1703.[1]

By Native Americans edit

  • The Yuki language in California has an octal system because the speakers count using the spaces between their fingers rather than the fingers themselves.[2]
  • The Pamean languages in Mexico also have an octal system, because their speakers count on the knuckles of a closed fist.[3]

By Europeans edit

  • It has been suggested that the reconstructed Proto-Indo-European (PIE) word for "nine" might be related to the PIE word for "new". Based on this, some have speculated that proto-Indo-Europeans used an octal number system, though the evidence supporting this is slim.[4]
  • In 1668, John Wilkins in An Essay towards a Real Character, and a Philosophical Language proposed use of base 8 instead of 10 "because the way of Dichotomy or Bipartition being the most natural and easie kind of Division, that Number is capable of this down to an Unite".[5]
  • In 1716, King Charles XII of Sweden asked Emanuel Swedenborg to elaborate a number system based on 64 instead of 10. Swedenborg argued, however, that for people with less intelligence than the king such a big base would be too difficult and instead proposed 8 as the base. In 1718 Swedenborg wrote (but did not publish) a manuscript: "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.[6]
  • Writing under the pseudonym "Hirossa Ap-Iccim" in The Gentleman's Magazine, (London) July 1745, Hugh Jones proposed an octal system for British coins, weights and measures. "Whereas reason and convenience indicate to us an uniform standard for all quantities; which I shall call the Georgian standard; and that is only to divide every integer in each species into eight equal parts, and every part again into 8 real or imaginary particles, as far as is necessary. For tho' all nations count universally by tens (originally occasioned by the number of digits on both hands) yet 8 is a far more complete and commodious number; since it is divisible into halves, quarters, and half quarters (or units) without a fraction, of which subdivision ten is uncapable...." In a later treatise on Octave computation (1753) Jones concluded: "Arithmetic by Octaves seems most agreeable to the Nature of Things, and therefore may be called Natural Arithmetic in Opposition to that now in Use, by Decades; which may be esteemed Artificial Arithmetic."[7]
  • In 1801, James Anderson criticized the French for basing the metric system on decimal arithmetic. He suggested base 8, for which he coined the term octal. His work was intended as recreational mathematics, but he suggested a purely octal system of weights and measures and observed that the existing system of English units was already, to a remarkable extent, an octal system.[8]
  • In the mid-19th century, Alfred B. Taylor concluded that "Our octonary [base 8] radix is, therefore, beyond all comparison the "best possible one" for an arithmetical system." The proposal included a graphical notation for the digits and new names for the numbers, suggesting that we should count "un, du, the, fo, pa, se, ki, unty, unty-un, unty-du" and so on, with successive multiples of eight named "unty, duty, thety, foty, paty, sety, kity and under." So, for example, the number 65 (101 in octal) would be spoken in octonary as under-un.[9][10] Taylor also republished some of Swedenborg's work on octal as an appendix to the above-cited publications.

In computers edit

Octal became widely used in computing when systems such as the UNIVAC 1050, PDP-8, ICL 1900 and IBM mainframes employed 6-bit, 12-bit, 24-bit or 36-bit words. Octal was an ideal abbreviation of binary for these machines because their word size is divisible by three (each octal digit represents three binary digits). So two, four, eight or twelve digits could concisely display an entire machine word. 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 radices, and hexadecimal displays needed to display more numerals.

All modern computing platforms, however, use 16-, 32-, or 64-bit words, further divided into eight-bit bytes. On such systems three octal digits per byte would be required, with the most significant octal digit representing two binary digits (plus one bit of the next significant byte, if any). Octal representation of a 16-bit word requires 6 digits, but the most significant octal digit represents (quite inelegantly) only one bit (0 or 1). This representation offers no way to easily read the most significant byte, because it's smeared over four octal digits. Therefore, hexadecimal is more commonly used in programming languages today, since two hexadecimal digits exactly specify one byte. 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 and Motorola 68000 family. The modern-day ubiquitous x86 architecture belongs to this category as well, but octal is rarely used on this platform, although certain properties of the binary encoding of opcodes become more readily apparent when displayed in octal, e.g. the ModRM byte, which is divided into fields of 2, 3, and 3 bits, so octal can be useful in describing these encodings. Before the availability of assemblers, some programmers would handcode programs in octal; for instance, Dick Whipple and John Arnold wrote Tiny BASIC Extended directly in machine code, using octal.[11]

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.

In programming languages, octal literals are typically identified with a variety of prefixes, including the digit 0, the letters o or q, the digit–letter combination 0o, or the symbol &[12] or $. In Motorola convention, octal numbers are prefixed with @, whereas a small (or capital[13]) letter o[13] or q[13] is added as a postfix following the Intel convention.[14][15] In Concurrent DOS, Multiuser DOS and REAL/32 as well as in DOS Plus and DR-DOS various environment variables like $CLS, $ON, $OFF, $HEADER or $FOOTER support an \nnn octal number notation,[16][17][18] and DR-DOS DEBUG utilizes \ to prefix octal numbers as well.

For example, the literal 73 (base 8) might be represented as 073, o73, q73, 0o73, \73, @73, &73, $73 or 73o in various languages.

Newer languages have been abandoning the prefix 0, as decimal numbers are often represented with leading zeroes. The prefix q was introduced to avoid the prefix o being mistaken for a zero, while the prefix 0o was introduced to avoid starting a numerical literal with an alphabetic character (like o or q), since these might cause the literal to be confused with a variable name. The prefix 0o also follows the model set by the prefix 0x used for hexadecimal literals in the C language; it is supported by Haskell,[19] OCaml,[20] Python as of version 3.0,[21] Raku,[22] Ruby,[23] Tcl as of version 9,[24] PHP as of version 8.1,[25] Rust[26] and ECMAScript as of ECMAScript 6[27] (the prefix 0 originally stood for base 8 in JavaScript but could cause confusion,[28] therefore it has been discouraged in ECMAScript 3 and dropped in ECMAScript 5[29]).

Octal numbers that are used in some programming languages (C, Perl, PostScript...) for textual/graphical representations of byte strings when some byte values (unrepresented in a code page, non-graphical, having special meaning in current context or otherwise undesired) have to be to escaped as \nnn. Octal representation may be particularly handy with non-ASCII bytes of UTF-8, which encodes groups of 6 bits, and where any start byte has octal value \3nn and any continuation byte has octal value \2nn.

Octal was also used for floating point in the Ferranti Atlas (1962), Burroughs B5500 (1964), Burroughs B5700 (1971), Burroughs B6700 (1971) and Burroughs B7700 (1972) computers.

In aviation edit

Transponders in aircraft transmit a "squawk" code, expressed as a four-octal-digit number, when interrogated by ground radar. This code is used to distinguish different aircraft on the radar screen.

Conversion between bases edit

Decimal to octal conversion edit

Method of successive Euclidean division by 8 edit

To convert integer decimals to octal, divide the original number by the largest possible power of 8 and divide the remainders by successively smaller powers of 8 until the power is 1. The octal representation is formed by the quotients, written in the order generated by the algorithm. For example, to convert 12510 to octal:

125 = 82 × 1 + 61
61 = 81 × 7 + 5
5 = 80 × 5 + 0

Therefore, 12510 = 1758.

Another example:

900 = 83 × 1 + 388
388 = 82 × 6 + 4
4 = 81 × 0 + 4
4 = 80 × 4 + 0

Therefore, 90010 = 16048.

Method of successive multiplication by 8 edit

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 × 8 = 1.3125 = 1 + 0.3125
0.3125 × 8 = 2.5 = 2 + 0.5
0.5 × 8 = 4.0 = 4 + 0

Therefore, 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.

Method of successive duplication edit

To convert integer decimals to octal, prefix the number with "0.". Perform the following steps for as long as digits remain on the right side of the radix: Double the value to the left side of the radix, using octal rules, move the radix point one digit rightward, and then place the doubled value underneath the current value so that the radix points align. If the moved radix point crosses over a digit that is 8 or 9, convert it to 0 or 1 and add the carry to the next leftward digit of the current value. Add octally those digits to the left of the radix and simply drop down those digits to the right, without modification.

Example:

 0.4 9 1 8 decimal value +0 --------- 4.9 1 8 +1 0 -------- 6 1.1 8 +1 4 2 -------- 7 5 3.8 +1 7 2 6 -------- 1 1 4 6 6. octal value 

Octal to decimal conversion edit

To convert a number k to decimal, use the formula that defines its base-8 representation:

 

In this formula, ai is an individual octal digit being converted, where i is the position of the digit (counting from 0 for the right-most digit).

Example: Convert 7648 to decimal:

7648 = 7 × 82 + 6 × 81 + 4 × 80 = 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 = 6 × 8 + 5 = 5310

Method of successive duplication edit

To convert octals to decimals, prefix the number with "0.". Perform the following steps for as long as digits remain on the right side of the radix: Double the value to the left side of the radix, using decimal rules, move the radix point one digit rightward, and then place the doubled value underneath the current value so that the radix points align. Subtract decimally those digits to the left of the radix and simply drop down those digits to the right, without modification.

Example:

 0.1 1 4 6 6 octal value -0 ----------- 1.1 4 6 6 - 2 ---------- 9.4 6 6 - 1 8 ---------- 7 6.6 6 - 1 5 2 ---------- 6 1 4.6 - 1 2 2 8 ---------- 4 9 1 8. decimal value 

Octal to binary conversion edit

To convert octal to binary, replace each octal digit by its binary representation.

Example: Convert 518 to binary:

58 = 1012
18 = 0012

Therefore, 518 = 101 0012.

Binary to octal conversion edit

The process is the reverse of the previous algorithm. The binary digits are grouped by threes, starting from the least significant bit and proceeding to the left and to the right. Add leading zeroes (or trailing zeroes to the right of decimal point) to fill out the last group of three if necessary. Then replace each trio with the equivalent octal digit.

For instance, convert binary 1010111100 to octal:

001 010 111 100
1 2 7 4

Therefore, 10101111002 = 12748.

Convert binary 11100.01001 to octal:

011 100  .  010 010
3 4  .  2 2

Therefore, 11100.010012 = 34.228.

Octal to hexadecimal conversion edit

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:
1 0 5 7
001 000 101 111
then to hexadecimal:
0010 0010 1111
2 2 F

Therefore, 10578 = 22F16.

Hexadecimal to octal conversion edit

Hexadecimal to octal conversion proceeds by first converting the hexadecimal digits to 4-bit binary values, then regrouping the binary bits into 3-bit octal digits.

For example, to convert 3FA516:

To binary:
3 F A 5
0011 1111 1010 0101
then to octal:
0 011 111 110 100 101
0 3 7 6 4 5

Therefore, 3FA516 = 376458.

Real numbers edit

Fractions edit

Due to having only factors of two, many octal fractions have repeating digits, although these tend to be fairly simple:

Decimal base
Prime factors of the base: 2, 5
Prime factors of one below the base: 3
Prime factors of one above the base: 11
Other Prime factors: 7 13 17 19 23 29 31
Octal base
Prime factors of the base: 2
Prime factors of one below the base: 7
Prime factors of one above the base: 3
Other Prime factors: 5 13 15 21 23 27 35 37
Fraction Prime factors
of the denominator
Positional representation Positional representation Prime factors
of the denominator
Fraction
1/2 2 0.5 0.4 2 1/2
1/3 3 0.3333... = 0.3 0.2525... = 0.25 3 1/3
1/4 2 0.25 0.2 2 1/4
1/5 5 0.2 0.1463 5 1/5
1/6 2, 3 0.16 0.125 2, 3 1/6
1/7 7 0.142857 0.1 7 1/7
1/8 2 0.125 0.1 2 1/10
1/9 3 0.1 0.07 3 1/11
1/10 2, 5 0.1 0.06314 2, 5 1/12
1/11 11 0.09 0.0564272135 13 1/13
1/12 2, 3 0.083 0.052 2, 3 1/14
1/13 13 0.076923 0.0473 15 1/15
1/14 2, 7 0.0714285 0.04 2, 7 1/16
1/15 3, 5 0.06 0.0421 3, 5 1/17
1/16 2 0.0625 0.04 2 1/20
1/17 17 0.0588235294117647 0.03607417 21 1/21
1/18 2, 3 0.05 0.034 2, 3 1/22
1/19 19 0.052631578947368421 0.032745 23 1/23
1/20 2, 5 0.05 0.03146 2, 5 1/24
1/21 3, 7 0.047619 0.03 3, 7 1/25
1/22 2, 11 0.045 0.02721350564 2, 13 1/26
1/23 23 0.0434782608695652173913 0.02620544131 27 1/27
1/24 2, 3 0.0416 0.025 2, 3 1/30
1/25 5 0.04 0.02436560507534121727 5 1/31
1/26 2, 13 0.0384615 0.02354 2, 15 1/32
1/27 3 0.037 0.022755 3 1/33
1/28 2, 7 0.03571428 0.02 2, 7 1/34
1/29 29 0.0344827586206896551724137931 0.0215173454106475626043236713 35 1/35
1/30 2, 3, 5 0.03 0.02104 2, 3, 5 1/36
1/31 31 0.032258064516129 0.02041 37 1/37
1/32 2 0.03125 0.02 2 1/40

Irrational numbers edit

The table below gives the expansions of some common irrational numbers in decimal and octal.

Number Positional representation
Decimal Octal
2 (the length of the diagonal of a unit square) 1.414213562373095048... 1.3240 4746 3177 1674...
3 (the length of the diagonal of a unit cube) 1.732050807568877293... 1.5666 3656 4130 2312...
5 (the length of the diagonal of a 1×2 rectangle) 2.236067977499789696... 2.1706 7363 3457 7224...
φ (phi, the golden ratio = (1+5)/2) 1.618033988749894848... 1.4743 3571 5627 7512...
π (pi, the ratio of circumference to diameter of a circle) 3.141592653589793238462643
383279502884197169399375105...
3.1103 7552 4210 2643...
e (the base of the natural logarithm) 2.718281828459045235... 2.5576 0521 3050 5355...

See also edit

References edit

  1. ^ Leibniz, Gottfried Wilhelm (1703). "Explanation of binary arithmetic". leibniz-translations.com. from the original on 2021-02-11. Retrieved 2022-03-02.
  2. ^ Ascher, Marcia (1992). "Ethnomathematics: A Multicultural View of Mathematical Ideas". The College Mathematics Journal. 23 (4): 353–355. doi:10.2307/2686959. JSTOR 2686959.
  3. ^ Avelino, Heriberto (2006). "The typology of Pame number systems and the limits of Mesoamerica as a linguistic area" (PDF). Linguistic Typology. 10 (1): 41–60. doi:10.1515/LINGTY.2006.002. S2CID 20412558. (PDF) from the original on 2011-06-04. Retrieved 2007-11-21.
  4. ^ Winter, Werner (1991). "Some thoughts about Indo-European numerals". In Gvozdanović, Jadranka (ed.). Indo-European numerals. Trends in Linguistics. Vol. 57. Berlin: Mouton de Gruyter. pp. 13–14. ISBN 3-11-011322-8. from the original on 2023-04-01. Retrieved 2013-06-09.
  5. ^ Wilkins, John (1668). An Essay Towards a Real Character and a Philosophical Language. London. p. 190. from the original on 2023-04-01. Retrieved 2015-02-08.
  6. ^ Donald Knuth, The Art of Computer Programming
  7. ^ See H. R. Phalen, "Hugh Jones and Octave Computation," The American Mathematical Monthly 56 (August–September 1949): 461-465.
  8. ^ James Anderson, On Octal Arithmetic [title appears only in page headers], Recreations in Agriculture, Natural-History, Arts, and Miscellaneous Literature 2023-04-01 at the Wayback Machine, Vol. IV, No. 6 (February 1801), T. Bensley, London; pages 437-448.
  9. ^ Alfred B. Taylor, Report on Weights and Measures, Pharmaceutical Association, 8th Annual Session, Boston, 1859-09-15. See pages 48 and 53.
  10. ^ Alfred B. Taylor, Octonary numeration and its application to a system of weights and measures, Proc. Amer. Phil. Soc. Vol XXIV 2023-04-01 at the Wayback Machine, Philadelphia, 1887; pages 296-366. See pages 327 and 330.
  11. ^ "TB Code Sheet". Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte. 1 (1). December 1975.
  12. ^ Microsoft Corporation (1987). "Constants, Variables, Expressions and Operators". GW-BASIC User's Manual. from the original on 2016-01-05. Retrieved 2015-12-12.
  13. ^ a b c "2.4.1 Numeric Constants". CP/M-86 - Operating System - Programmer's Guide (PDF) (3 ed.). Pacific Grove, California, USA: Digital Research. January 1983 [1981]. p. 9. (PDF) from the original on 2020-02-27. Retrieved 2020-02-27. (1+viii+122+2 pages)
  14. ^ Küveler, Gerd; Schwoch, Dietrich (2013) [1996]. Arbeitsbuch Informatik - eine praxisorientierte Einführung in die Datenverarbeitung mit Projektaufgabe (in German). Vieweg-Verlag, reprint: Springer-Verlag. doi:10.1007/978-3-322-92907-5. ISBN 978-3-528-04952-2. 978-3-32292907-5. from the original on 2023-04-01. Retrieved 2015-08-05.
  15. ^ Küveler, Gerd; Schwoch, Dietrich (2007-10-04). Informatik für Ingenieure und Naturwissenschaftler: PC- und Mikrocomputertechnik, Rechnernetze (in German). Vol. 2 (5 ed.). Vieweg, reprint: Springer-Verlag. ISBN 978-3-83489191-4. 978-3-83489191-4. from the original on 2023-04-01. Retrieved 2015-08-05.
  16. ^ Paul, Matthias R. (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. Release 157 (in German) (3 ed.). from the original on 2016-11-04. Retrieved 2014-08-06. {{cite book}}: |work= ignored (help) (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
  17. ^ Paul, Matthias R. (2002-03-26). "Updated CLS posted". freedos-dev mailing list. Archived from the original on 2019-04-27. Retrieved 2014-08-06.
  18. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
  19. ^ "Haskell 98 Lexical Structure". from the original on 2021-04-11. Retrieved 2019-11-01.
  20. ^ OCaml: 7.1 Lexical conventions Archived 2013-07-01 at archive.today
  21. ^ Python 3: https://docs.python.org/3.1/reference/lexical_analysis.html#integer-literals 2014-03-20 at the Wayback Machine
  22. ^ Perl 6: http://perlcabal.org/syn/S02.html#Radix_markers 31 October 2014 at the Wayback Machine
  23. ^ RubySpec: https://github.com/ruby/ruby/blob/master/spec/ruby/core/string/to_i_spec.rb 2022-05-29 at the Wayback Machine
  24. ^ Tcl: http://wiki.tcl.tk/498 2014-01-04 at the Wayback Machine
  25. ^ PHP.Watch - PHP 8.1: Explicit Octal numeral notation https://php.watch/versions/8.1/explicit-octal-notation 2021-01-08 at the Wayback Machine
  26. ^ Rust literals and operators: https://doc.rust-lang.org/rust-by-example/primitives/literals.html 2022-05-28 at the Wayback Machine
  27. ^ ECMAScript 6th Edition draft: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-numeric-literals 16 December 2013 at the Wayback Machine
  28. ^ "Why does the radix for JavaScript's parseInt default to 8?". Stack Overflow. 2011-04-08. from the original on 2020-08-06. Retrieved 2019-08-21.
  29. ^ "parseInt()", Mozilla Developer Network (MDN), from the original on 2014-03-05, retrieved 2014-01-03, If the input string begins with "0" (a zero), radix is assumed to be 8 (octal) or 10 (decimal). Exactly which radix is chosen is implementation-dependent. ECMAScript 5 clarifies that 10 (decimal) should be used, but not all browsers support this yet

External links edit

  • Octomatics is a numeral system enabling simple visual calculation in octal.
  • Octal converter performs bidirectional conversions between the octal and decimal system.

octal, numeral, systems, bits, gray, code, step0hex, 0dec, 0oct, 01hex, 1dec, 1oct, 12hex, 2dec, 2oct, 33hex, 3dec, 3oct, 24hex, 4dec, 4oct, 75hex, 5dec, 5oct, 66hex, 6dec, 6oct, 47hex, 7dec, 7oct, 58hex, 8dec, 10oct, f9hex, 9dec, 11oct, eahex, 10dec, 12oct, c. Numeral systems bits and Gray code hex dec oct 3 2 1 0 step0hex 0 0dec 0 0oct 0 0 0 0 g 01hex 0 1dec 0 1oct 0 0 0 1 h 12hex 0 2dec 0 2oct 0 0 1 0 j 33hex 0 3dec 0 3oct 0 0 1 1 i 24hex 0 4dec 0 4oct 0 1 0 0 n 75hex 0 5dec 0 5oct 0 1 0 1 m 66hex 0 6dec 0 6oct 0 1 1 0 k 47hex 0 7dec 0 7oct 0 1 1 1 l 58hex 0 8dec 10oct 1 0 0 0 v F9hex 0 9dec 11oct 1 0 0 1 u EAhex 10dec 12oct 1 0 1 0 s CBhex 11dec 13oct 1 0 1 1 t DChex 12dec 14oct 1 1 0 0 o 8Dhex 13dec 15oct 1 1 0 1 p 9Ehex 14dec 16oct 1 1 1 0 r BFhex 15dec 17oct 1 1 1 1 q A Octal base 8 is a numeral system with eight as the base In the decimal system each place is a power of ten For example 74 10 7 10 1 4 10 0 displaystyle mathbf 74 10 mathbf 7 times 10 1 mathbf 4 times 10 0 In the octal system each place is a power of eight For example 112 8 1 8 2 1 8 1 2 8 0 displaystyle mathbf 112 8 mathbf 1 times 8 2 mathbf 1 times 8 1 mathbf 2 times 8 0 By performing the calculation above in the familiar decimal system we see why 112 in octal is equal to 64 8 2 74 displaystyle 64 8 2 74 in decimal Octal numerals can be easily converted from binary representations similar to a quaternary numeral system by grouping consecutive binary digits into groups of three starting from the right for integers For example the binary representation for decimal 74 is 1001010 Two zeroes can be added at the left 00 1 001 010 corresponding to the octal digits 1 1 2 yielding the octal representation 112 The octal multiplication table 1 2 3 4 5 6 7 101 1 2 3 4 5 6 7 102 2 4 6 10 12 14 16 203 3 6 11 14 17 22 25 304 4 10 14 20 24 30 34 405 5 12 17 24 31 36 43 506 6 14 22 30 36 44 52 607 7 16 25 34 43 52 61 7010 10 20 30 40 50 60 70 100Contents 1 Usage 1 1 In China 1 2 By Native Americans 1 3 By Europeans 1 4 In computers 1 5 In aviation 2 Conversion between bases 2 1 Decimal to octal conversion 2 1 1 Method of successive Euclidean division by 8 2 1 2 Method of successive multiplication by 8 2 1 3 Method of successive duplication 2 2 Octal to decimal conversion 2 2 1 Method of successive duplication 2 3 Octal to binary conversion 2 4 Binary to octal conversion 2 5 Octal to hexadecimal conversion 2 6 Hexadecimal to octal conversion 3 Real numbers 3 1 Fractions 3 2 Irrational numbers 4 See also 5 References 6 External linksUsage editIn China edit nbsp Fuxi s Earlier Heaven Arrangement of the Eight TrigramsThe eight bagua or trigrams of the I Ching correspond to octal digits 0 1 2 3 4 5 6 7 Gottfried Wilhelm Leibniz made the connection between trigrams hexagrams and binary numbers in 1703 1 By Native Americans edit The Yuki language in California has an octal system because the speakers count using the spaces between their fingers rather than the fingers themselves 2 The Pamean languages in Mexico also have an octal system because their speakers count on the knuckles of a closed fist 3 By Europeans edit It has been suggested that the reconstructed Proto Indo European PIE word for nine might be related to the PIE word for new Based on this some have speculated that proto Indo Europeans used an octal number system though the evidence supporting this is slim 4 In 1668 John Wilkins in An Essay towards a Real Character and a Philosophical Language proposed use of base 8 instead of 10 because the way of Dichotomy or Bipartition being the most natural and easie kind of Division that Number is capable of this down to an Unite 5 In 1716 King Charles XII of Sweden asked Emanuel Swedenborg to elaborate a number system based on 64 instead of 10 Swedenborg argued however that for people with less intelligence than the king such a big base would be too difficult and instead proposed 8 as the base In 1718 Swedenborg wrote but did not publish a manuscript 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 6 Writing under the pseudonym Hirossa Ap Iccim in The Gentleman s Magazine London July 1745 Hugh Jones proposed an octal system for British coins weights and measures Whereas reason and convenience indicate to us an uniform standard for all quantities which I shall call the Georgian standard and that is only to divide every integer in each species into eight equal parts and every part again into 8 real or imaginary particles as far as is necessary For tho all nations count universally by tens originally occasioned by the number of digits on both hands yet 8 is a far more complete and commodious number since it is divisible into halves quarters and half quarters or units without a fraction of which subdivision ten is uncapable In a later treatise on Octave computation 1753 Jones concluded Arithmetic by Octaves seems most agreeable to the Nature of Things and therefore may be called Natural Arithmetic in Opposition to that now in Use by Decades which may be esteemed Artificial Arithmetic 7 In 1801 James Anderson criticized the French for basing the metric system on decimal arithmetic He suggested base 8 for which he coined the term octal His work was intended as recreational mathematics but he suggested a purely octal system of weights and measures and observed that the existing system of English units was already to a remarkable extent an octal system 8 In the mid 19th century Alfred B Taylor concluded that Our octonary base 8 radix is therefore beyond all comparison the best possible one for an arithmetical system The proposal included a graphical notation for the digits and new names for the numbers suggesting that we should count un du the fo pa se ki unty unty un unty du and so on with successive multiples of eight named unty duty thety foty paty sety kity and under So for example the number 65 101 in octal would be spoken in octonary as under un 9 10 Taylor also republished some of Swedenborg s work on octal as an appendix to the above cited publications In computers edit Octal became widely used in computing when systems such as the UNIVAC 1050 PDP 8 ICL 1900 and IBM mainframes employed 6 bit 12 bit 24 bit or 36 bit words Octal was an ideal abbreviation of binary for these machines because their word size is divisible by three each octal digit represents three binary digits So two four eight or twelve digits could concisely display an entire machine word 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 radices and hexadecimal displays needed to display more numerals All modern computing platforms however use 16 32 or 64 bit words further divided into eight bit bytes On such systems three octal digits per byte would be required with the most significant octal digit representing two binary digits plus one bit of the next significant byte if any Octal representation of a 16 bit word requires 6 digits but the most significant octal digit represents quite inelegantly only one bit 0 or 1 This representation offers no way to easily read the most significant byte because it s smeared over four octal digits Therefore hexadecimal is more commonly used in programming languages today since two hexadecimal digits exactly specify one byte 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 and Motorola 68000 family The modern day ubiquitous x86 architecture belongs to this category as well but octal is rarely used on this platform although certain properties of the binary encoding of opcodes become more readily apparent when displayed in octal e g the ModRM byte which is divided into fields of 2 3 and 3 bits so octal can be useful in describing these encodings Before the availability of assemblers some programmers would handcode programs in octal for instance Dick Whipple and John Arnold wrote Tiny BASIC Extended directly in machine code using octal 11 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 In programming languages octal literals are typically identified with a variety of prefixes including the digit 0 the letters o or q the digit letter combination 0o or the symbol amp 12 or In Motorola convention octal numbers are prefixed with whereas a small or capital 13 letter o 13 or q 13 is added as a postfix following the Intel convention 14 15 In Concurrent DOS Multiuser DOS and REAL 32 as well as in DOS Plus and DR DOS various environment variables like CLS ON OFF HEADER or FOOTER support an nnn octal number notation 16 17 18 and DR DOS DEBUG utilizes to prefix octal numbers as well For example the literal 73 base 8 might be represented as 073 o73 q73 0o73 73 73 amp 73 73 or 73o in various languages Newer languages have been abandoning the prefix 0 as decimal numbers are often represented with leading zeroes The prefix q was introduced to avoid the prefix o being mistaken for a zero while the prefix 0o was introduced to avoid starting a numerical literal with an alphabetic character like o or q since these might cause the literal to be confused with a variable name The prefix 0o also follows the model set by the prefix 0x used for hexadecimal literals in the C language it is supported by Haskell 19 OCaml 20 Python as of version 3 0 21 Raku 22 Ruby 23 Tcl as of version 9 24 PHP as of version 8 1 25 Rust 26 and ECMAScript as of ECMAScript 6 27 the prefix 0 originally stood for base 8 in JavaScript but could cause confusion 28 therefore it has been discouraged in ECMAScript 3 and dropped in ECMAScript 5 29 Octal numbers that are used in some programming languages C Perl PostScript for textual graphical representations of byte strings when some byte values unrepresented in a code page non graphical having special meaning in current context or otherwise undesired have to be to escaped as nnn Octal representation may be particularly handy with non ASCII bytes of UTF 8 which encodes groups of 6 bits and where any start byte has octal value 3nn and any continuation byte has octal value 2nn Octal was also used for floating point in the Ferranti Atlas 1962 Burroughs B5500 1964 Burroughs B5700 1971 Burroughs B6700 1971 and Burroughs B7700 1972 computers In aviation edit Transponders in aircraft transmit a squawk code expressed as a four octal digit number when interrogated by ground radar This code is used to distinguish different aircraft on the radar screen Conversion between bases editDecimal to octal conversion edit Method of successive Euclidean division by 8 edit To convert integer decimals to octal divide the original number by the largest possible power of 8 and divide the remainders by successively smaller powers of 8 until the power is 1 The octal representation is formed by the quotients written in the order generated by the algorithm For example to convert 12510 to octal 125 82 1 61 61 81 7 5 5 80 5 0Therefore 12510 1758 Another example 900 83 1 388 388 82 6 4 4 81 0 4 4 80 4 0Therefore 90010 16048 Method of successive multiplication by 8 edit 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 8 1 3125 1 0 3125 0 3125 8 2 5 2 0 5 0 5 8 4 0 4 0Therefore 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 Method of successive duplication edit To convert integer decimals to octal prefix the number with 0 Perform the following steps for as long as digits remain on the right side of the radix Double the value to the left side of the radix using octal rules move the radix point one digit rightward and then place the doubled value underneath the current value so that the radix points align If the moved radix point crosses over a digit that is 8 or 9 convert it to 0 or 1 and add the carry to the next leftward digit of the current value Add octally those digits to the left of the radix and simply drop down those digits to the right without modification Example 0 4 9 1 8 decimal value 0 4 9 1 8 1 0 6 1 1 8 1 4 2 7 5 3 8 1 7 2 6 1 1 4 6 6 octal value Octal to decimal conversion edit To convert a number k to decimal use the formula that defines its base 8 representation k i 0 n a i 8 i displaystyle k sum i 0 n left a i times 8 i right nbsp In this formula ai is an individual octal digit being converted where i is the position of the digit counting from 0 for the right most digit Example Convert 7648 to decimal 7648 7 82 6 81 4 80 448 48 4 50010For 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 6 8 5 5310 Method of successive duplication edit To convert octals to decimals prefix the number with 0 Perform the following steps for as long as digits remain on the right side of the radix Double the value to the left side of the radix using decimal rules move the radix point one digit rightward and then place the doubled value underneath the current value so that the radix points align Subtract decimally those digits to the left of the radix and simply drop down those digits to the right without modification Example 0 1 1 4 6 6 octal value 0 1 1 4 6 6 2 9 4 6 6 1 8 7 6 6 6 1 5 2 6 1 4 6 1 2 2 8 4 9 1 8 decimal value Octal to binary conversion edit To convert octal to binary replace each octal digit by its binary representation Example Convert 518 to binary 58 1012 18 0012Therefore 518 101 0012 Binary to octal conversion edit The process is the reverse of the previous algorithm The binary digits are grouped by threes starting from the least significant bit and proceeding to the left and to the right Add leading zeroes or trailing zeroes to the right of decimal point to fill out the last group of three if necessary Then replace each trio with the equivalent octal digit For instance convert binary 1010111100 to octal 001 010 111 1001 2 7 4Therefore 10101111002 12748 Convert binary 11100 01001 to octal 011 100 010 0103 4 2 2Therefore 11100 010012 34 228 Octal to hexadecimal conversion edit 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 1 0 5 7001 000 101 111then to hexadecimal 0010 0010 11112 2 FTherefore 10578 22F16 Hexadecimal to octal conversion edit Hexadecimal to octal conversion proceeds by first converting the hexadecimal digits to 4 bit binary values then regrouping the binary bits into 3 bit octal digits For example to convert 3FA516 To binary 3 F A 50011 1111 1010 0101then to octal 0 011 111 110 100 1010 3 7 6 4 5Therefore 3FA516 376458 Real numbers editFractions edit Due to having only factors of two many octal fractions have repeating digits although these tend to be fairly simple Decimal basePrime factors of the base 2 5Prime factors of one below the base 3Prime factors of one above the base 11Other Prime factors 7 13 17 19 23 29 31 Octal basePrime factors of the base 2Prime factors of one below the base 7Prime factors of one above the base 3Other Prime factors 5 13 15 21 23 27 35 37Fraction Prime factorsof the denominator Positional representation Positional representation Prime factorsof the denominator Fraction1 2 2 0 5 0 4 2 1 21 3 3 0 3333 0 3 0 2525 0 25 3 1 31 4 2 0 25 0 2 2 1 41 5 5 0 2 0 1463 5 1 51 6 2 3 0 16 0 125 2 3 1 61 7 7 0 142857 0 1 7 1 71 8 2 0 125 0 1 2 1 101 9 3 0 1 0 07 3 1 111 10 2 5 0 1 0 06314 2 5 1 121 11 11 0 09 0 0564272135 13 1 131 12 2 3 0 083 0 052 2 3 1 141 13 13 0 076923 0 0473 15 1 151 14 2 7 0 0714285 0 04 2 7 1 161 15 3 5 0 06 0 0421 3 5 1 171 16 2 0 0625 0 04 2 1 201 17 17 0 0588235294117647 0 03607417 21 1 211 18 2 3 0 05 0 034 2 3 1 221 19 19 0 052631578947368421 0 032745 23 1 231 20 2 5 0 05 0 03146 2 5 1 241 21 3 7 0 047619 0 03 3 7 1 251 22 2 11 0 045 0 02721350564 2 13 1 261 23 23 0 0434782608695652173913 0 02620544131 27 1 271 24 2 3 0 0416 0 025 2 3 1 301 25 5 0 04 0 02436560507534121727 5 1 311 26 2 13 0 0384615 0 02354 2 15 1 321 27 3 0 037 0 022755 3 1 331 28 2 7 0 03571428 0 02 2 7 1 341 29 29 0 0344827586206896551724137931 0 0215173454106475626043236713 35 1 351 30 2 3 5 0 03 0 02104 2 3 5 1 361 31 31 0 032258064516129 0 02041 37 1 371 32 2 0 03125 0 02 2 1 40Irrational numbers edit The table below gives the expansions of some common irrational numbers in decimal and octal Number Positional representationDecimal Octal 2 the length of the diagonal of a unit square 1 414213 562 373 095 048 1 3240 4746 3177 1674 3 the length of the diagonal of a unit cube 1 732050 807 568 877 293 1 5666 3656 4130 2312 5 the length of the diagonal of a 1 2 rectangle 2 236067 977 499 789 696 2 1706 7363 3457 7224 f phi the golden ratio 1 5 2 1 618033 988 749 894 848 1 4743 3571 5627 7512 p pi the ratio of circumference to diameter of a circle 3 141592 653 589 793 238 462 643 383279 502 884 197 169 399 375 105 3 1103 7552 4210 2643 e the base of the natural logarithm 2 718281 828 459 045 235 2 5576 0521 3050 5355 See also editComputer number format Internal representation of numeric values in a digital computer Octal games a game numbering system used in combinatorial game theory Split octal a 16 bit octal notation used by the Heath Company DEC and others Squawk code a 12 bit octal representation of Gillham code Syllabic octal an octal representation of 8 bit syllables used by English ElectricReferences edit Leibniz Gottfried Wilhelm 1703 Explanation of binary arithmetic leibniz translations com Archived from the original on 2021 02 11 Retrieved 2022 03 02 Ascher Marcia 1992 Ethnomathematics A Multicultural View of Mathematical Ideas The College Mathematics Journal 23 4 353 355 doi 10 2307 2686959 JSTOR 2686959 Avelino Heriberto 2006 The typology of Pame number systems and the limits of Mesoamerica as a linguistic area PDF Linguistic Typology 10 1 41 60 doi 10 1515 LINGTY 2006 002 S2CID 20412558 Archived PDF from the original on 2011 06 04 Retrieved 2007 11 21 Winter Werner 1991 Some thoughts about Indo European numerals In Gvozdanovic Jadranka ed Indo European numerals Trends in Linguistics Vol 57 Berlin Mouton de Gruyter pp 13 14 ISBN 3 11 011322 8 Archived from the original on 2023 04 01 Retrieved 2013 06 09 Wilkins John 1668 An Essay Towards a Real Character and a Philosophical Language London p 190 Archived from the original on 2023 04 01 Retrieved 2015 02 08 Donald Knuth The Art of Computer Programming See H R Phalen Hugh Jones and Octave Computation The American Mathematical Monthly 56 August September 1949 461 465 James Anderson On Octal Arithmetic title appears only in page headers Recreations in Agriculture Natural History Arts and Miscellaneous Literature Archived 2023 04 01 at the Wayback Machine Vol IV No 6 February 1801 T Bensley London pages 437 448 Alfred B Taylor Report on Weights and Measures Pharmaceutical Association 8th Annual Session Boston 1859 09 15 See pages 48 and 53 Alfred B Taylor Octonary numeration and its application to a system of weights and measures Proc Amer Phil Soc Vol XXIV Archived 2023 04 01 at the Wayback Machine Philadelphia 1887 pages 296 366 See pages 327 and 330 TB Code Sheet Dr Dobb s Journal of Computer Calisthenics amp Orthodontia Running Light Without Overbyte 1 1 December 1975 Microsoft Corporation 1987 Constants Variables Expressions and Operators GW BASIC User s Manual Archived from the original on 2016 01 05 Retrieved 2015 12 12 a b c 2 4 1 Numeric Constants CP M 86 Operating System Programmer s Guide PDF 3 ed Pacific Grove California USA Digital Research January 1983 1981 p 9 Archived PDF from the original on 2020 02 27 Retrieved 2020 02 27 1 1 viii 122 2 pages Kuveler Gerd Schwoch Dietrich 2013 1996 Arbeitsbuch Informatik eine praxisorientierte Einfuhrung in die Datenverarbeitung mit Projektaufgabe in German Vieweg Verlag reprint Springer Verlag doi 10 1007 978 3 322 92907 5 ISBN 978 3 528 04952 2 978 3 32292907 5 Archived from the original on 2023 04 01 Retrieved 2015 08 05 Kuveler Gerd Schwoch Dietrich 2007 10 04 Informatik fur Ingenieure und Naturwissenschaftler PC und Mikrocomputertechnik Rechnernetze in German Vol 2 5 ed Vieweg reprint Springer Verlag ISBN 978 3 83489191 4 978 3 83489191 4 Archived from the original on 2023 04 01 Retrieved 2015 08 05 Paul Matthias R 1997 07 30 NWDOS TIPs Tips amp Tricks rund um Novell DOS 7 mit Blick auf undokumentierte Details Bugs und Workarounds Release 157 in German 3 ed Archived from the original on 2016 11 04 Retrieved 2014 08 06 a href Template Cite book html title Template Cite book cite book a work ignored help NB NWDOSTIP TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7 01 including the description of many undocumented features and internals It is part of the author s yet larger MPDOSTIP ZIP collection maintained up to 2001 and distributed on many sites at the time The provided link points to a HTML converted older version of the NWDOSTIP TXT file Paul Matthias R 2002 03 26 Updated CLS posted freedos dev mailing list Archived from the original on 2019 04 27 Retrieved 2014 08 06 CCI Multiuser DOS 7 22 GOLD Online Documentation Concurrent Controls Inc CCI 1997 02 10 HELP HLP Haskell 98 Lexical Structure Archived from the original on 2021 04 11 Retrieved 2019 11 01 OCaml 7 1 Lexical conventions Archived 2013 07 01 at archive today Python 3 https docs python org 3 1 reference lexical analysis html integer literals Archived 2014 03 20 at the Wayback Machine Perl 6 http perlcabal org syn S02 html Radix markers Archived 31 October 2014 at the Wayback Machine RubySpec https github com ruby ruby blob master spec ruby core string to i spec rb Archived 2022 05 29 at the Wayback Machine Tcl http wiki tcl tk 498 Archived 2014 01 04 at the Wayback Machine PHP Watch PHP 8 1 Explicit Octal numeral notation https php watch versions 8 1 explicit octal notation Archived 2021 01 08 at the Wayback Machine Rust literals and operators https doc rust lang org rust by example primitives literals html Archived 2022 05 28 at the Wayback Machine ECMAScript 6th Edition draft https people mozilla org jorendorff es6 draft html sec literals numeric literals Archived 16 December 2013 at the Wayback Machine Why does the radix for JavaScript s parseInt default to 8 Stack Overflow 2011 04 08 Archived from the original on 2020 08 06 Retrieved 2019 08 21 parseInt Mozilla Developer Network MDN archived from the original on 2014 03 05 retrieved 2014 01 03 If the input string begins with 0 a zero radix is assumed to be 8 octal or 10 decimal Exactly which radix is chosen is implementation dependent ECMAScript 5 clarifies that 10 decimal should be used but not all browsers support this yetExternal links editOctomatics is a numeral system enabling simple visual calculation in octal Octal converter performs bidirectional conversions between the octal and decimal system Retrieved from https en wikipedia org w index php title Octal amp oldid 1196157384, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.