Позиционная система счисления

Позиционная систе́ма счисле́ния (позиционная нумерация) —

Содержание

История

См. также: Системы счисления разных народов

Изобретение позиционной нумерации, основанной на поместном значении цифр, приписывается шумерам и вавилонянам. В более поздний период такая нумерация была развита индусами и имела неоценимые последствия в истории цивилизации. К числу таких систем относится десятичная система счисления, возникновение которой связано со счётом на пальцах. В средневековой Европе она появилась через итальянских купцов, в свою очередь заимствовавших её у арабов.

Определения

Позиционная система счисления определяется целым числом b>1{displaystyle b>1}

 , называемым основанием системы счисления. Система счисления с основанием b{displaystyle b}  также называется b{displaystyle b} -ичной (в частности, двоичной, троичной, десятичной и т.п.).

Целое число без знака x{displaystyle x}

  в b{displaystyle b} -ичной системе счисления представляется в виде конечной линейной комбинации степеней числа b{displaystyle b} [1]:

x=∑k=0n−1akbk{displaystyle x=sum _{k=0}^{n-1}a_{k}b^{k}} , где  ak{displaystyle a_{k}}  — это целые числа, называемые цифрами, удовлетворяющие неравенству 0≤ak≤b−1.{displaystyle 0leq a_{k}leq b-1.} 

Каждый базисный элемент  bk{displaystyle b^{k}}

  в таком представлении называется разрядом (позицией), старшинство разрядов и соответствующих им цифр определяется номером разряда (позиции)  k{displaystyle k}  (значением показателя степени).

С помощью n{displaystyle n}

  позиций в b{displaystyle b} -ичной системе счисления можно записать целые числа в диапазоне от 0{displaystyle 0}  до bn−1{displaystyle b^{n}-1} , т.е. всего bn{displaystyle b^{n}}  различных чисел.

Запись чисел

Если не возникает разночтений (например, когда все цифры представляются в виде уникальных письменных знаков), число  x{displaystyle x}

  записывают в виде последовательности его b{displaystyle b} -ичных цифр, перечисляемых по убыванию старшинства разрядов слева направо[1]:

x=an−1an−2…a0.{displaystyle x=a_{n-1}a_{n-2}dots a_{0}.} 

В ненулевых числах  x{displaystyle x}

  начальные нули обычно опускаются.

Для записи чисел в системах счисления с основанием до 36 включительно в качестве цифр (знаков) используются арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) и, затем, буквы латинского алфавита (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z). При этом, a = 10, b = 11 и т.д., иногда x = 10.

При одновременной работе с несколькими системами счисления для их различения основание системы обычно указывается в виде нижнего индекса, который записывается в десятичной системе:

12310{displaystyle 123_{10}}  — это число 123 в десятичной системе счисления;
1738{displaystyle 173_{8}}  — то же число в восьмеричной системе счисления;
11110112{displaystyle 1111011_{2}}  — то же число, но в двоичной системе счисления;
0001 0010 001110=000100100011BCD{displaystyle 0001 0010 0011_{10}=000100100011_{BCD}}  — то же число, но в десятичной системе счисления с двоичным кодированием десятичных цифр (BCD);
111203N{displaystyle 11120_{3N}}  — то же число, но в несимметричной троичной системе счисления;
1iiii03S=1777703S=1222203S=+−−−−03S{displaystyle 1iiii0_{3S}=177770_{3S}=122220_{3S}=+—-0_{3S}}  — то же число, но в симметричной троичной системе счисления, знаки «i», «7», «2» и «−» обозначают «−1», знаки «1» и «+» обозначают «+1».

В некоторых специальных областях применяются особые правила указания основания. Например, в программировании шестнадцатеричная система обозначается:

  • в ассемблере и записях общего рода, не привязанных к конкретному языку, буквой h (от hexadecimal) в конце числа (синтаксис Intel);
  • в Паскале знаком «$» в начале числа;
  • в Си и многих других языках комбинацией 0x или 0X (от hexadecimal) в начале.

В некоторых диалектах языка Си по аналогии с «0x» используется префикс «0b» для обозначения двоичных чисел (обозначение «0b» не входит в стандарт ANSI C).

В русских счётах для записи чисел в десятичной показательной позиционной системе счисления применяется унарнодесятичная система записи (представления) десятичных цифр с одной избыточной унарнодесятичной цифрой «1111111111» = 10_10 на каждый разряд.

Примеры

Свойства

Позиционная система счисления обладает рядом свойств:

  • Основание системы счисления в ней самой всегда записывается как 10; например, в двоичной системе счисления 10 означает число 2. Данное утверждение неприменимо к унарной системе счисления, в которой используется только одна цифра.
  • Для записи числа x в b-ичной системе счисления требуется ⌊logb⁡x⌋+1{displaystyle lfloor log _{b}xrfloor +1}  цифр, где ⌊⋅⌋{displaystyle lfloor cdot rfloor }  означает взятие целой части числа.
  • Сравнивать числа, записанные в позиционной системе счисления, можно поразрядно, предварительно дополнив их ведущими нулями до одинаковой длины. При этом сравнение идёт от старшего разряда к младшему до тех пор, пока цифра в одном числе не будет больше соответствующей цифры в другом. Например, для сравнения чисел 321 и 312 в десятичной системе счисления сравниваются цифры в одинаковых разрядах слева направо:
    • 3 = 3 — результат сравнения чисел пока не определён;
    • 2 > 1 — первое число больше (независимо от оставшихся цифр).
Таким образом, естественный порядок на числах соответствует лексикографическому порядку на их записях в позиционной системе счисления при условии, что эти записи дополнены ведущими нулями до одинаковой длины.
  • Арифметические операции над числами. Позиционная система счисления позволяет без труда выполнять сложение, вычитание, умножение, деление и деление с остатком чисел, зная только таблицу сложения однозначных чисел, а для трёх последних операций ещё и таблицу умножения в соответствующей системе (см., например, деление столбиком).

Экономичность

В цифровой технике система счисления с основанием b{displaystyle b}

  реализуется регистрами, состоящими из наборов триггеров, каждый из которых может принимать b{displaystyle b}  различных состояний, кодирующих цифры числа. При этом особое значение приобретает экономичность системы счисления — возможность представления как можно большего количества чисел с использованием как можно меньшего общего количества знаков.[1] Если количество триггеров равно r{displaystyle r} , то общее количество знаков равно m=r⋅b{displaystyle m=rcdot b} , а количество представимых ими чисел соответственно — br=bmb{displaystyle b^{r}=b^{frac {m}{b}}} . Как функция от b{displaystyle b} , это выражение достигает максимума при b{displaystyle b}  равном числу e = 2,718281828….[2] При целых значениях b{displaystyle b}  максимум достигается для b=3{displaystyle b=3} . Таким образом, наиболее экономичной является троичная система счисления (используемая в троичных ЭВМ), следом за которой идут двоичная система счисления (традиционно используемая в большинстве распространённых ЭВМ) и четверичная система счисления.

Экономичность системы счисления — немаловажное обстоятельство с точки зрения её использования в вычислительной машине. Поэтому, хотя применение в вычислительной машине троичной системы вместо двоичной влечёт некоторые конструктивные трудности (при этом нужно пользоваться элементами, каждый из которых может находиться не в двух, а в трёх устойчивых состояниях), эта система уже была использована[3] в некоторых реально существующих вычислительных устройствах.[1]С. В. Фомин

Эквивалентное описание экономичности системы счисления можно получить, используя понятие информационной энтропии. При условии равновероятности появления каждой из цифр в записи числа информационная энтропия записи n-разрядного числа в системе счисления с основанием b принимает значение nln⁡bb{displaystyle n{tfrac {ln b}{b}}}

  (с точностью до постоянного коэффициента). Поэтому плотность записи (то есть, количество информации на один разряд) чисел в системе счисления с основанием b равна ln⁡bb{displaystyle {tfrac {ln b}{b}}} , которая также принимает максимальное значение при b = e, а для целых значений b — при b = 3.

Переход к другому основанию

Перевод в десятичную систему счисления

Если число в b{displaystyle b}

 -ичной системе счисления равно

an−1an−2…a1a0,{displaystyle a_{n-1};a_{n-2}ldots ;a_{1};a_{0},} 

то для перевода в десятичную систему вычисляем такую сумму:

∑k=0n−1ak⋅bk{displaystyle sum _{k=0}^{n-1}a_{k}cdot b^{k}} 

или, в более наглядном виде:

an−1⋅bn−1+an−2⋅bn−2+…+a1⋅b1+a0⋅b0,{displaystyle a_{n-1}cdot b^{n-1}+a_{n-2}cdot b^{n-2}+ldots +a_{1}cdot b^{1}+a_{0}cdot b^{0},} 

либо, наконец, в виде схемы Горнера:

((…(an−1⋅b+an−2)⋅b+an−3)…)⋅b+a0.{displaystyle ((ldots (a_{n-1}cdot b+a_{n-2})cdot b+a_{n-3})ldots )cdot b+a_{0}.} 

Например:

1011002 =
= 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 =
= 1 · 32 + 0 · 16 + 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 =
= 32 + 8 + 4 + 0 = 4410

Перевод из десятичной системы счисления

Целая часть
  1. Последовательно делить целую часть десятичного числа на основание, пока десятичное число не станет равно нулю.
  2. Полученные при делении остатки являются цифрами нужного числа. Число в новой системе записывают, начиная с последнего остатка.
Дробная часть
  1. Дробную часть десятичного числа умножаем на основание системы, в которую требуется перевести. Отделяем целую часть. Продолжаем умножать дробную часть на основание новой системы, пока она не станет равной 0.
  2. Число в новой системе составляют целые части результатов умножения в порядке, соответствующем их получению.
Пример

4410{displaystyle 44_{10}}

  переведём в двоичную систему:44 делим на 2. частное 22, остаток 022 делим на 2. частное 11, остаток 011 делим на 2. частное 5, остаток 1 5 делим на 2. частное 2, остаток 1 2 делим на 2. частное 1, остаток 0 1 делим на 2. частное 0, остаток 1

Частное равно нулю, деление закончено. Теперь записав все остатки снизу вверх получим число 1011002{displaystyle 101100_{2}}

 

Перевод из двоичной в восьмеричную и шестнадцатеричную системы

Для этого типа операций существует упрощённый алгоритм.

Для восьмеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (2³=8), в данном случае 3, то есть триад). Преобразуем триады по таблице триад:

000 0 100 4001 1 101 5010 2 110 6011 3 111 7

Для шестнадцатеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (24=16), в данном случае 4, то есть тетрад). Преобразуем тетрады по таблице тетрад:

0000 0 0100 4 1000 8 1100 C 0001 1 0101 5 1001 9 1101 D0010 2 0110 6 1010 A 1110 E0011 3 0111 7 1011 B 1111 F

Пример:

преобразуем 1011002восьмеричная — 101 100 → 548шестнадцатеричная — 0010 1100 → 2C16

Перевод из восьмеричной и шестнадцатеричной систем в двоичную

Для этого типа операций существует упрощённый алгоритм-перевёртыш.

Для восьмеричной — преобразуем по таблице в триплеты

0 000 4 1001 001 5 1012 010 6 1103 011 7 111

Для шестнадцатеричной — преобразуем по таблице в квартеты

0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 11012 0010 6 0110 A 1010 E 11103 0011 7 0111 B 1011 F 1111

Пример:

преобразуем548 → 101 1002C16 → 0010 1100

Перевод из двоичной системы в 8- и 16-ричную

Перевод дробной части из двоичной системы счисления в системы счисления с основаниями 8 и 16 осуществляется точно также, как и для целых частей числа, за тем лишь исключением, что разбивка на октавы и тетрады идёт вправо от десятичной запятой, недостающие разряды дополняются нулями справа. Например, рассмотренное выше число 1100,0112 будет выглядеть как 14,38 или C,616.

Перевод из произвольной системы счисления в десятичную

Рассмотрим пример перевода двоичного числа 1100,0112 в десятичное. Целая часть этого числа равна 12 (см. выше), а вот перевод дробной части рассмотрим подробнее:

0,011=0⋅2−1+1⋅2−2+1⋅2−3=0+0,25+0,125=0,375.{displaystyle 0,011=0cdot 2^{-1}+1cdot 2^{-2}+1cdot 2^{-3}=0+0,25+0,125=0,375.} 

Итак, число 1100,0112 = 12,37510.

Точно также осуществляется перевод из любой системы счисления, только вместо «2» ставится основание системы.

Для удобства перевода, целую и дробную части числа переводят отдельно, а результат потом конкатенируют.

Перевод из десятичной системы в произвольную

Для перевода дробной части числа в другие системы счисления нужно обратить целую часть в ноль и начать умножение получившегося числа на основание той системы, в которую нужно перевести. Если в результате умножения будут снова появляться целые части, их нужно повторно обращать в нуль, предварительно запомнив (записав) значение получившейся целой части. Операция заканчивается, когда дробная часть полностью обратится в нуль. Ниже приводится пример перевода числа 103,62510 в двоичную систему счисления.

Переводим целую часть по правилам, описанным выше, получаем 10310 = 11001112.

0,625 умножаем на 2. Дробная часть 0,250. Целая часть 1.0,250 умножаем на 2. Дробная часть 0,500. Целая часть 0.0,500 умножаем на 2. Дробная часть 0,000. Целая часть 1.

Итак, сверху вниз получаем число 1012. Поэтому 103,62510 = 1100111,1012

Точно также осуществляется перевод в системы счисления с любым основанием.

Сразу нужно отметить, что этот пример специально подобран, в общем случае очень редко удаётся завершить перевод дробной части числа из десятичной системы в другие системы счисления, а потому, в подавляющем большинстве случаев, перевод можно осуществить с какой либо долей погрешности. Чем больше знаков после запятой — тем точнее приближение результата перевода к истине. В этих словах легко убедиться, если попытаться, например, перевести в двоичный код число 0,626.

Вариации и обобщения

Запись рациональных чисел

Рациональное число x{displaystyle x}

  в b{displaystyle b} -ичной системе счисления представляется в виде линейной комбинации (вообще говоря, бесконечной) степеней числа b{displaystyle b} :

x=(an−1an−2…a1a0,c1c2…)b=∑k=0n−1akbk+∑k=1∞ckb−k{displaystyle x=(a_{n-1}a_{n-2}ldots a_{1}a_{0},c_{1}c_{2}ldots )_{b}=sum _{k=0}^{n-1}a_{k}b^{k}+sum _{k=1}^{infty }c_{k}b^{-k}} 

где ak{displaystyle a_{k}}

  — цифры целой части (до разделителя), ck{displaystyle c_{k}}  — цифры дробной части (после разделителя), n{displaystyle n}  — число разрядов целой части.

Конечной записью в b{displaystyle b}

 -ичной системе счисления обладают только рациональные числа, представимые в виде qbm{displaystyle {frac {q}{b^{m}}}} , где m{displaystyle m}  и q{displaystyle q}  — целые числа:

qbm=(an−1an−2…a1a0,c1c2…c−m)b=∑k=0n−1akbk+∑k=1mckb−k,{displaystyle {frac {q}{b^{m}}}=(a_{n-1}a_{n-2}ldots a_{1}a_{0},c_{1}c_{2}ldots c_{-m})_{b}=sum _{k=0}^{n-1}a_{k}b^{k}+sum _{k=1}^{m}c_{k}b^{-k},} 

где (an−1an−2…a1a0)b{displaystyle (a_{n-1}a_{n-2}ldots a_{1}a_{0})_{b}}

  и (c1c2…c−m)b{displaystyle (c_{1}c_{2}ldots c_{-m})_{b}}  представляют b{displaystyle b} -ичные записи соответственно частного и остатка от деления q{displaystyle q}  на bm{displaystyle b^{m}} .

Рациональные числа, не представимые в виде qbm{displaystyle {frac {q}{b^{m}}}}

 , записываются в виде периодических дробей.

Симметричные системы счисления

Симметричные (уравновешенные, знакоразрядные) системы счисления отличаются тем, что используют цифры не из множества {0,1,…,b−1}{displaystyle {0,1,ldots ,b-1}}

 , а из множества {0−(b−12),1−(b−12),…,(b−1)−(b−12)}{displaystyle left{0-left({tfrac {b-1}{2}}right),1-left({tfrac {b-1}{2}}right),ldots ,(b-1)-left({tfrac {b-1}{2}}right)right}} . Чтобы цифры были целыми, нужно, чтобы b{displaystyle b}  было нечётным. В симметричных системах счисления не требуется дополнительных обозначений для знака числа.[4] Кроме того, вычисления в симметричных системах удобны тем, что не требуется особых правил округления — оно сводится к простому отбрасыванию лишних разрядов, что резко уменьшает систематические ошибки вычислений.

Чаще всего используется симметричная троичная система счисления с цифрами {−1,0,1}{displaystyle {-1,0,1}}

 . Она применяется в троичной логике и была технически реализована в вычислительной машине «Сетунь».

Отрицательные основания

Основная статья: Нега-позиционная система счисления

Существуют позиционные системы с отрицательными основаниями, называемые нега-позиционными:

Нецелочисленные основания

Иногда также рассматривают позиционные системы счисления с нецелочисленными основаниями: рациональными, иррациональными, трансцендентными.

Примерами таких систем счисления являются:

Комплексные основания

Основаниями позиционных систем счисления могут быть также комплексные[6][7] числа. При этом цифры в них принимают значения из некоторого конечного множества, удовлетворяющего условиям, которые позволяют выполнять арифметические операции непосредственно с представлениями чисел в этих системах счисления.

В частности, среди позиционных систем счисления с комплексными основаниями можно выделить двоичные, в которых используются лишь две цифры 0 и 1.

Примеры

Далее будем записывать позиционную систему счисления в следующем виде ⟨ρ,A⟩{displaystyle langle rho ,Arangle }

 , где ρ{displaystyle rho }  — основание системы счисления, а A — множество цифр. В частности, множество A может иметь вид:

  • BR={0,1,2,…,R−1},{displaystyle B_{R}={0,1,2,dots ,R-1},} 
  • DR={−r1,−r1+1,…,−1,0,1,…,r2−1,r2},{displaystyle D_{R}={-r_{1},-r_{1}+1,dots ,-1,0,1,dots ,r_{2}-1,r_{2}},}  где r1,r2≥0{displaystyle r_{1},r_{2}geq 0}  и R=r1+r2+1{displaystyle R=r_{1}+r_{2}+1} . При r1=0{displaystyle r_{1}=0}  множество DR{displaystyle D_{R}}  превращается в множество BR{displaystyle B_{R}} .

Примерами систем счисления с комплексными основаниями являются (далее j — мнимая единица):

  • ⟨ρ=jR,BR⟩.{displaystyle langle rho =j{sqrt {R}},B_{R}rangle .} [7]
    • Пример: ⟨ρ=±j2,{0,1}⟩;{displaystyle langle rho =pm j{sqrt {2}},{0,1}rangle ;} 
  • ⟨ρ=2e±jπ/2,B2⟩.{displaystyle langle rho ={sqrt {2}}e^{pm jpi /2},B_{2}rangle .} [6]
    • Пример: ⟨ρ=−1±j,{0,1}⟩;{displaystyle langle rho =-1pm j,{0,1}rangle ;} 
  • ⟨ρ=2ejπ/3,{0,1,e2jπ/3,e−2jπ/3}⟩;{displaystyle langle rho =2e^{jpi /3},{0,1,e^{2jpi /3},e^{-2jpi /3}}rangle ;} [8]
  • ⟨ρ=R,BR⟩,{displaystyle langle rho ={sqrt {R}},B_{R}rangle ,}  где φ=±arccos⁡(−β/2R){displaystyle varphi =pm arccos {(-beta /2{sqrt {R}})}} , β<min{R,2R}{displaystyle beta <min{R,2{sqrt {R}}}}  — целое положительное число, которое может принимать несколько значений при данном R;[9]
  • ⟨ρ=−R,AR2⟩,{displaystyle langle rho =-R,A_{R}^{2}rangle ,}  где множество AR2{displaystyle A_{R}^{2}}  состоит из комплексных чисел вида rm=αm1+jαm2{displaystyle r_{m}=alpha _{m}^{1}+jalpha _{m}^{2}} , а числа αm∈BR.{displaystyle alpha _{m}in B_{R}.}  Например: ⟨−2,{0,1,j,1+j}⟩;{displaystyle langle -2,{0,1,j,1+j}rangle ;} [8]
  • ⟨ρ=ρ2,{0,1}⟩,{displaystyle langle rho =rho _{2}^{},{0,1}rangle ,}  где ρ2={(−2)1/2if m even,j(−2)(m−1)/2mif m odd.{displaystyle rho _{2}={begin{cases}(-2)^{1/2}&{mbox{if}} m {mbox{even}},j(-2)^{(m-1)/2m}&{mbox{if}} m {mbox{odd}}.end{cases}}}  .[10]

Двоичные комплексные системы счисления

Ниже перечислены основания двоичных позиционных систем счисления и представления чисел 2, −2 и −1 в них:

  • ρ=2{displaystyle rho =2} : 2=(10)ρ{displaystyle 2=(10)_{rho }}  (система счисления с натуральным основанием);
  • ρ=−2{displaystyle rho =-2} : 2=(110)ρ{displaystyle 2=(110)_{rho }} , −2=(10)ρ{displaystyle -2=(10)_{rho }} , −1=11ρ{displaystyle -1=11_{rho }}  (нега-позиционная система счисления);
  • ρ=−ρ2{displaystyle rho =-rho _{2}} : 2=(10100)ρ{displaystyle 2=(10100)_{rho }} , −2=(100)ρ{displaystyle -2=(100)_{rho }} , −1=101ρ{displaystyle -1=101_{rho }}  (система счисления с комплексным основанием);
  • ρ=j2{displaystyle rho =j{sqrt {2}}} : 2=(10100)ρ{displaystyle 2=(10100)_{rho }} , −2=(100)ρ{displaystyle -2=(100)_{rho }} , −1=(101)ρ{displaystyle -1=(101)_{rho }}  (система счисления с комплексным основанием);
  • ρ=−1+j{displaystyle rho =-1+j} : 2=(1100)ρ{displaystyle 2=(1100)_{rho }} , −2=(11100)ρ{displaystyle -2=(11100)_{rho }} , −1=(11101)ρ{displaystyle -1=(11101)_{rho }}  (система счисления с комплексным основанием);
  • ρ=−1+j72{displaystyle rho ={frac {-1+j{sqrt {7}}}{2}}} : 2=(1010)ρ{displaystyle 2=(1010)_{rho }} , −2=(110)ρ{displaystyle -2=(110)_{rho }} , −1=(111)ρ{displaystyle -1=(111)_{rho }}  (система счисления с комплексным основанием).

Непоказательные системы счисления

Показательные системы счисления являются частным случаем позиционных систем счисления с показательной зависимостью. Вместо показательной зависимости могут быть другие зависимости. Например, гипероператорная позиционная система счисления

hyper4⁡(a,b)=hyper⁡(a,4,b)=a(4)b=a↑↑b= aa⋅⋅a⏟b times=a→b→2 {displaystyle {operatorname {hyper4} (a,b)=operatorname {hyper} (a,4,b)=a^{(4)}b=auparrow uparrow b= atop { }}quad {underbrace {a^{a^{cdot ^{cdot ^{a}}}}} atop {b{mbox{ times}}}}quad {=ato bto 2 atop { }}} 

позволяет записывать бо́льшие диапазоны чисел тем же числом знаков.

Примечания

  1. 1 2 3 4 С. В. Фомин. Системы счисления. — М.: Наука, 1987. — 48 с. — (Популярные лекции по математике). (альтернативная ссылка)
  2. Hayes, Brian (2001). “Third base”. American Scientist. 89 (6): 490—494. DOI:10.1511/2001.40.3268.
  3. См. Троичный компьютер.
  4. С. Б. Гашков. Системы счисления и их применение. — 2004. — 52 с. — (Библиотека «Математическое просвещение»). — ISBN 5-94057-146-8.
  5. А. В. Никитин Система Бергмана.
  6. 1 2 Хмельник С. И. Специализированная ЦВМ для операций с комплексными числами // Вопросы радиоэлектроники. — 1964. — Т. XII, вып. 2.
  7. 1 2 Knuth D. E. (1960). “An Imaginary Number System”. Communication of the ACM. 3 (4): 245—247. DOI:10.1145/367177.367233.
  8. 1 2 Хмельник С. И. Кодирование комплексных чисел и векторов. — Mathematics in Computers. — Израиль, 2004. — ISBN 978-0-557-74692-7.
  9. Хмельник С. И. Позиционное кодирование комплексных чисел // Вопросы радиоэлектроники. — 1966. — Т. XII, вып. 9.
  10. Khmelnik S.I. Method and system for processing complex numbers. — Patent USA, US2003154226 (A1). — 2001.

Ссылки