Octal: octomatics

7:30 PM | BY ZeroDivide EDIT



descriptionthe octomatics project is about a new number system
which has a lot of advantages over our old decimal system.
the name comes from the mixture of 'octal' and 'mathematics'.

what do you think: why do we have the decimal system
in our western world? because of our 10 fingers? why
do we have 7 days a week? why are 60 seconds 1 minute
and 60 minutes 1 hour? why do we have 24 hours a day?
and 31 or 30 days a month? do you think thats a really
good solution? well, here is another one:

...welcome to octomatics !

the new numbers how many numbers are the optimum? 8? 10? 12? 16?
i think it's 8 or 12. make it 8 and you will be able to read
and work with binary code without any transformation.

i think the numbers should look more technically than
letters. maybe they could look like the following:






what would be the binary code? it should be:

000 . 001 . 010 . 011 . 100 . 101 . 110 . 111



do you see any similarities? if you want to write it really
fast by hand it might look like this after a while:





calculation the really good thing about the octomatics-number-system is
that you can calculate visually. just add or remove the strokes!



(...of course: if 2 strokes hit they will be "destroyed" and carried
one position left when adding...pretty much like normal binary math).
try it...it's very easy!

you can also do very simple visual multiplication, but to be faster,
it could still be a help to memorize the multiplicationtable...
...but it is much smaller and easier than the decimal one:



how about counting with your fingers? just use your 8 fingers
to count...you still have the two thumbs for the powers:
that means you can count up to 24 that way!

or you do it the binary way (we will show you some pictures
about that soon...). pro: you fingers look exactly like the numbers
and you can count to 31 with one hand and up to 1023 with both!!

chronology forget what you know about hours, days and weeks. only leave
the natural time measurements (day: earth turns round 1 time,
month: moon period, year: summer + winter) and you could end
up like this:

one day has 8 units (see below):





one week has 8 days (you have one more day to relax...smile)
about 4 weeks make one month (3.8 to be exact...today that's 4.345).
12 month make one year...just like today.

so...what about world time? well, since there is no difference anymore
between angles and time (a circle is divided into 8 segments just like the day is)
this is quite convenient: the time is nothing more than the angle of
the world rotation:




by the way: this is the octomatics time you spent on this website:
(you need the flash-plugin):



tools here you find some little tools which will help you to get started
with your switch to the octomatics world ;-)maybe you still need to be compatible to the old decimal system
sometimes. in that case you may find this a helpful tool:


we still need to convince texas instruments that this would
be a really important and profitable new device:



in the meantime we will have to put up
with our handhelds:


we haven't finished our 'octocalc.prc'...but here you
can get the feeling for it with our flash-version.

"real" worldon the 20.01.2001 the nation organon officially announced
the adoption of the octomatics number system as the main
national number system.



 free encyclopedia
The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. Octal numerals can be made from binary numerals by grouping consecutive binary digits into groups of three (starting from the right). For example, the binary representation for decimal 74 is 1001010, which can be grouped into (00)1 001 010 – so the octal representation is 112.
In the decimal system each decimal place is a power of ten. For example:
\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:
\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 in decimal.
The octal multiplication table
×123456710
1123456710
22461012141620
336111417222530
4410142024303440
5512172431364350
6614223036445260
7716253443526170
1010203040506070100

Usage[edit]

By Native Americans[edit]

The Yuki language in California and the Pamean languages[1] in Mexico have octal systems because the speakers count using the spaces between their fingers rather than the fingers themselves.[2]

By Europeans[edit]

  • It has been suggested that the reconstructed Proto-Indo-European 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.[3]
  • 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 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.[4]
  • 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 Octavesseems 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."[5]
  • 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.[6]
  • 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 "unduthefopasekiuntyunty-ununty-du" and so on, with successive multiples of eight named "untydutythetyfoty,patysetykity and under." So, for example, the number 65 would be spoken in octonary as under-un.[7][8] Taylor also republished some of Swedenborg's work on octonary as an appendix to the above-cited publications.

In fiction[edit]

In the 2009 film Avatar, the language of the extraterrestrial Na'vi race employs an octal numeral system, probably due to the fact that they have four fingers on each hand.[9]
In the TV series Stargate SG-1, the Ancients, a race of beings responsible for the invention of the Stargates, used an octal system of mathematics.
In the tabletop game series Warhammer 40,000, the Tau race use an octal number system.

In computers[edit]

Octal became widely used in computing when systems such as the PDP-8ICL 1900 and IBM mainframes employed 12-bit24-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 four, eight or twelve digits could concisely display an entire machine word. It also cut costs by allowing Nixie tubesseven-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.
Octal is sometimes used in computing instead of hexadecimal, perhaps most often in modern times in conjunction with file permissions under Unixsystems (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, or the digit–letter combination 0o. In Motorola convention, octal numbers are prefixed with @, whereas a small letter o is added as a postfix following the Intelconvention. DR-DOS DEBUG uses \ to prefix octal numbers.
For example, the literal 73 (base 8) might be represented as 073o73q730o73\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,[10] OCaml,[11] Perl 6,[12] Python as of version 3.0,[13] Ruby,[14] Tcl as of version 9,[15] and it is intended to be supported by ECMAScript 6[16] (the prefix 0 has been discouraged in ECMAScript 3 and dropped in ECMAScript 5[17]).
Octal numbers that are used in some programming languages (C, PerlPostScript…) 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 toescaped as \nnn. Octal representation of non-ASCII bytes may be particularly handy with UTF-8, where any start byte has octal value \3nn and any continuation byte has octal value \2nn.

Conversion between bases[edit]

Decimal to octal conversion[edit]

Method of successive division by 8[edit]

To convert integer decimals to octal, divide the original number by the largest possible power of 8 and successively 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
125 − 82 × 1 = 61
61 / 81 = 7
61 − 81 × 7 = 5
5 / 80 = 5
Therefore, 12510 = 1758.
Another example:
900 / 83 = 1
900 − 83 × 1 = 388
388 / 82 = 6
388 − 82 × 6 = 4
4 / 81 = 0
4 − 81 × 0 = 4
4 / 80 = 4
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.

Octal to decimal conversion[edit]

To convert a number k to decimal, use the formula that defines its base-8 representation:
k = \sum_{i=0}^n \left( a_i\times 8^i \right)
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

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 0s (or trailing zeros 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:
001010111100
1274
Therefore, 10101111002 = 12748.
Convert binary 11100.01001 to octal:
011100 . 010010
34 . 22
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:
1057
001000101111
then to hexadecimal:
001000101111
22F
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:
3FA5
0011111110100101
then to octal:
0011111110100101
037645
Therefore, 3FA516 = 376458.

See also[edit]

References[edit]

  1. Jump up^ Avelino, Heriberto (2006). "The typology of Pame number systems and the limits of Mesoamerica as a linguistic area"Linguistic Typology 10 (1): 41–60. doi:10.1515/LINGTY.2006.002.
  2. Jump up^ Marcia Ascher. "Ethnomathematics: A Multicultural View of Mathematical Ideas". The College Mathematics Journal. Retrieved 2007-04-13.
  3. Jump up^ Winter, Werner (1991). "Some thoughts about Indo-European numerals". In Gvozdanović, Jadranka. Indo-European numerals. Trends in Linguistics57. Berlin: Mouton de Gruyter. pp. 13–14. ISBN 3-11-011322-8. Retrieved 2013-06-09.
  4. Jump up^ Donald KnuthThe Art of Computer Programming
  5. Jump up^ See H.R. Phalen, "Hugh Jones and Octave Computation," The American Mathematical Monthly 56 (August–September 1949): 461-65.
  6. Jump up^ James Anderson, On Octal Arithmetic [title appears only in page headers], Recreations in Agriculture, Natural-History, Arts, and Miscellaneous Literature, Vol. IV, No. 6 (Feb. 1801), T. Bensley, London; pages 437-448.
  7. Jump up^ A.B. Taylor, Report on Weights and Measures, Pharmaceutical Association, 8th Annual Session, Boston, Sept. 15, 1859. See pages and 48 and 53.
  8. Jump up^ Alfred B. Taylor, Octonary numeration and its application to a system of weights and measures, Proc. Amer. Phil. Soc. Vol XXIV, Philadelphia, 1887; pages 296-366. See pages 327 and 330.
  9. Jump up^ Counting in Na'vi
  10. Jump up^ Haskell: http://www.haskell.org/onlinereport/lexemes.html#sect2.5
  11. Jump up^ OCaml: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html
  12. Jump up^ Perl 6: http://perlcabal.org/syn/S02.html#Radix_markers
  13. Jump up^ Python 3: https://docs.python.org/3.1/reference/lexical_analysis.html#integer-literals
  14. Jump up^ RubySpec: https://github.com/kostya/rubyspec/blob/master/core/string/to_i_spec.rb
  15. Jump up^ Tcl: http://wiki.tcl.tk/498
  16. Jump up^ ECMAScript 6th Edition draft: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-numeric-literals
  17. Jump up^ Mozilla Developer Network: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt