|Hindu–Arabic numeral system|
|Positional systems by base|
|Non-standard positional numeral systems|
|List of numeral systems|
The quater-imaginary numeral system was first proposed by Donald Knuth in 1955, in a submission to a high-school science talent search. It is a non-standard positional numeral system which uses the imaginary number 2i as its base. It is able to (almost) uniquely represent every complex number using only the digits 0, 1, 2, and 3. (Numbers less than zero, which are ordinarily represented with a minus sign, are representable as digit strings in quater-imaginary; for example, the number −1 is represented as "103" in quater-imaginary notation.)
- 1 Decompose the quater-imaginary
- 2 Converting from quater-imaginary
- 3 Converting into quater-imaginary
- 4 Radix point "."
- 5 Addition and subtraction
- 6 Multiplication
- 7 Tabulated conversions
- 8 Examples
- 9 Z-order curve
- 10 See also
- 11 References
- 12 Further reading
Decompose the quater-imaginary
as we know,
The real and imaginary parts of this complex number are thus readily expressed in base −4 as and respectively.
Converting from quater-imaginary
To convert a digit string from the quater-imaginary system to the decimal system, the standard formula for positional number systems can be used. This says that a digit string in base b can be converted to a decimal number using the formula
For the quater-imaginary system, .
Additionally, for a given string in the form , the formula below can be used for a given string length in base
To convert the string to a decimal number, fill in the formula above:
Another, longer example: in base 10 is
Converting into quater-imaginary
It is also possible to convert a decimal number to a number in the quater-imaginary system. Every complex number (every number of the form a+bi) has a quater-imaginary representation. Most numbers have a unique quater-imaginary representation, but just as 1 has the two representations 1 = 0.999... in decimal notation, so 1/5 has the two quater-imaginary representations 1.(0300)…2i = 0.(0003)…2i.
To convert an arbitrary complex number to quater-imaginary, it is sufficient to split the number into its real and imaginary components, convert each of those separately, and then add the results by interleaving the digits. For example, since –1+4i is equal to –1 plus 4i, the quater-imaginary representation of –1+4i is the quater-imaginary representation of –1 (namely, 103) plus the quater-imaginary representation of 4i (namely, 20), which gives a final result of –1+4i = 1232i.
To find the quater-imaginary representation of the imaginary component, it suffices to multiply that component by 2i, which gives a real number; then find the quater-imaginary representation of that real number, and finally shift the representation by one place to the right (thus dividing by 2i). For example, the quater-imaginary representation of 6i is calculated by multiplying 6i • 2i = –12, which is expressed as 3002i, and then shifting by one place to the right, yielding: 6i = 302i.
But there are faster methods for both, real and imaginary, integers, as shown in section Negative base#To Negaquaternary.
Example: Real number
As an example of an integer number we can try to find the quater-imaginary counterpart of the decimal number 7 (or 710 since the base of the decimal system is 10). Since it is hard to predict exactly how long the digit string will be for a given decimal number, it is safe to assume a fairly large string. In this case, a string of six digits can be chosen. When an initial guess at the size of the string eventually turns out to be insufficient, a larger string can be used.
To find the representation, first write out the general formula, and group terms:
Since 7 is a real number, it is allowed to conclude that d1, d3 and d5 should be zero. Now the value of the coefficients d0, d2 and d4, must be found. Because d0 − 4 d2 + 16 d4 = 7 and because—by the nature of the quater-imaginary system—the coefficients can only be 0, 1, 2 or 3 the value of the coefficients can be found. A possible configuration could be: d0 = 3, d2 = 3 and d4 = 1. This configuration gives the resulting digit string for 710.
Example: Imaginary number
Finding a quater-imaginary representation of a purely imaginary integer number ∈ iZ is analogous to the method described above for a real number. For example, to find the representation of 6i, it is possible to use the general formula. Then all coefficients of the real part have to be zero and the complex part should make 6. However, for 6i it is easily seen by looking at the formula that if d1 = 3 and all other coefficients are zero, we get the desired string for 6i. That is:
Another conversion method
For real numbers the quater-imaginary representation is the same as negative quaternary (base −4). A complex number x+iy can be converted to quater-imaginary by converting x and y/2 separately to negative quaternary. If both x and y are finite binary fractions we can use the following algorithm using repeated Euclidean division:
For example: 35+23i=121003.22i
35 23i÷2i=11.5 11=12-0.5 35÷(-4)=-8, remainder 3 12÷(-4)=-3, remainder 0 (-0.5)*(-4)=2 -8÷(-4)= 2, remainder 0 -3÷(-4)= 1, remainder 1 2÷(-4)= 0, remainder 2 1÷(-4)= 0, remainder 1 20003 + 101000 + 0.2 = 121003.2 32i+16*2-8i-4*0+2i*0+1*3-2*i/2=35+23i
Radix point "."
A radix point in the decimal system is the usual . (dot) which marks the separation between the integral part and the fractional part of the number. In the quater-imaginary system a radix point can also be used. For a digit string the radix point marks the separation between positive and negative powers of b. Using the radix point the general formula becomes:
If the quater-imaginary representation of the complex unit i has to be found, the formula without radix point will not suffice. Therefore the above formula should be used. Hence:
for certain coefficients dk. Then because the real part has to be zero: d4 = d2 = d0 = d-2 = 0. For the imaginary part, if d5 = d3 = d -3 = 0 and when d1=1 and d-1=2 the digit string can be found. Using the above coefficients in the digit string the result is:
Addition and subtraction
- Whenever a number exceeds 3, subtract 4 and "carry" −1 two places to the left.
- Whenever a number drops below 0, add 4 and "carry" +1 two places to the left.
Or for short: "If you add four, carry +1. If you subtract four, carry -1". This is the opposite of normal long addition, in which a "carry" in the current column requires adding 1 to the next column to the left, and a "borrow" requires subtracting. In quater-imaginary arithmetic, a "carry" subtracts from the next-but-one column, and a "borrow" adds.
Below are two examples of adding in the quater-imaginary system:
1 - 2i 1031 3 - 4i 1023 1 - 2i 1031 1 - 8i 1001 ------- + <=> ----- + ------- + <=> ----- + 2 - 4i 1022 4 - 12i 12320
In the first example we start by adding the two 1s in the first column (the "ones' column"), giving 2. Then we add the two 3s in the second column (the "2is column"), giving 6; 6 is greater than 3, so we subtract 4 (giving 2 as the result in the second column) and carry −1 into the fourth column. Adding the 0s in the third column gives 0; and finally adding the two 1s and the carried −1 in the fourth column gives 1.
In the second example we first add 3+1, giving 4; 4 is greater than 3, so we subtract 4 (giving 0) and carry −1 into the third column (the "−4s column"). Then we add 2+0 in the second column, giving 2. In the third column, we have 0+0+(−1), because of the carry; −1 is less than 0, so we add 4 (giving 3 as the result in the third column) and "borrow" +1 into the fifth column. In the fourth column, 1+1 is 2; and the carry in the fifth column gives 1, for a result of .
Subtraction is analogous to addition in that it uses the same two rules described above. Below is an example:
- 2 - 8i 1102 1 - 6i 1011 ------- - <=> ----- - - 3 - 2i 1131
In this example we have to subtract from . The rightmost digit is 2−1 = 1. The second digit from the right would become −1, so add 4 to give 3 and then carry +1 two places to the left. The third digit from the right is 1−0 = 1. Then the leftmost digit is 1−1 plus 1 from the carry, giving 1. This gives a final answer of .
For long multiplication in the quater-imaginary system, the two rules stated above are used as well. When multiplying numbers, multiply the first string by each digit in the second string consecutively and add the resulting strings. With every multiplication, a digit in the second string is multiplied with the first string. The multiplication starts with the rightmost digit in the second string and then moves leftward by one digit, multiplying each digit with the first string. Then the resulting partial products are added where each is shifted to the left by one digit. An example:
11201 20121 x -------- 11201 <--- 1 x 11201 12002 <--- 2 x 11201 11201 <--- 1 x 11201 00000 <--- 0 x 11201 12002 + <--- 2 x 11201 ------------ 120231321
This corresponds to a multiplication of .
Below is a table of some decimal and complex numbers and their quater-imaginary counterparts.
Below are some other examples of conversions from decimal numbers to quater-imaginary numbers.
of an arbitrary complex number with gives rise to an injective mapping
with some suitable . Here cannot be taken as base because of
- Knuth, Donald Ervin. "Positional Number Systems". The Art of Computer Programming 2 (3 ed.). Addison-Wesley. p. 205.
- Warren Jr., Henry S. (2013) . Hacker's Delight (2 ed.). Addison Wesley - Pearson Education, Inc. p. 309. ISBN 978-0-321-84268-8. 0-321-84268-5.