Remove ads
Из Википедии, свободной энциклопедии
Позиционная систе́ма счисле́ния (позиционная, поме́стная нумерация) — система счисления, в которой значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда) относительно десятичного разделителя. Позиционные системы по сравнению с другими позволяют существенно упростить алгоритмы выполнения арифметических операций и ускорить вычисления. Их создание и распространение сыграли большую роль в развитии точных наук — математики, астрономии и физики.
Индо-арабская | |
---|---|
Арабская Тамильская Бирманская |
Кхмерская Лаосская Монгольская Тайская |
Восточноазиатские | |
Китайская Японская Сучжоу Корейская |
Вьетнамская Счётные палочки |
Алфавитные | |
Абджадия Армянская Ариабхата Кириллическая Греческая |
Грузинская Эфиопская Еврейская Акшара-санкхья |
Другие | |
Вавилонская Египетская Этрусская Римская Дунайская |
Аттическая Кипу Майяская Эгейская Символы КППУ |
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60 | |
Нега-позиционная | |
Симметричная | |
Фибоначчиева | |
Единичная (унарная) |
В этой статье слишком короткая преамбула. |
Исторически первое изобретение позиционной нумерации, основанной на поместном значении цифр, приписывается шумерам и вавилонянам. Они использовали 60-ричную позиционную систему счисления.
Независимо от евразийских цивилизаций двадцатеричную позиционную систему счисления изобрели индейцы майя.
Древнейшая известная запись позиционной десятичной системы обнаружена в Индии в 595 году. Индийская нумерация пришла сначала в арабские страны, затем и в Западную Европу. О ней рассказал среднеазиатский математик аль-Хорезми. Простые и удобные правила сложения и вычитания чисел, записанных в позиционной системе, сделали её особенно популярной. А поскольку труд аль-Хорезми был написан на арабском, то за индийской нумерацией в Европе закрепилось иное название — «арабская» (арабские цифры).
Позиционная система счисления определяется целым числом , называемым основанием системы счисления. Система счисления с основанием также называется -ичной (в частности, двоичной, троичной, десятичной и т.п.).
Целое число без знака в -ичной системе счисления представляется в виде конечной линейной комбинации степеней числа [1]:
Каждый базисный элемент в таком представлении называется разрядом (позицией), старшинство разрядов и соответствующих им цифр определяется номером разряда (позиции) (значением показателя степени).
С помощью позиций в -ичной системе счисления можно записать целые числа в диапазоне от до , т.е. всего различных чисел.
Если не возникает разночтений (например, когда все цифры представляются в виде уникальных письменных знаков), число записывают в виде последовательности его -ичных цифр, перечисляемых по убыванию старшинства разрядов слева направо[1]:
В ненулевых числах начальные нули обычно опускаются.
Для записи чисел в системах счисления с основанием до 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.
При одновременной работе с несколькими системами счисления для их различения основание системы обычно указывается в виде нижнего индекса, который записывается в десятичной системе:
В некоторых специальных областях применяются особые правила указания основания. Например, в программировании шестнадцатеричная система обозначается:
В некоторых диалектах языка Си по аналогии с «0x» используется префикс «0b» для обозначения двоичных чисел (обозначение «0b» не входит в стандарт ANSI C).
В русских счётах для записи чисел в десятичной показательной позиционной системе счисления применяется унарнодесятичная система записи (представления) десятичных цифр с одной избыточной унарнодесятичной цифрой «1111111111» = 10_10 на каждый разряд.
Позиционная система счисления обладает рядом свойств:
В другом языковом разделе есть более полная статья Radix economy (англ.). |
В цифровой технике система счисления с основанием реализуется регистрами, состоящими из наборов триггеров, каждый из которых может принимать различных состояний, кодирующих цифры числа. При этом особое значение приобретает экономичность системы счисления — возможность представления как можно большего количества чисел с использованием как можно меньшего общего количества знаков.[1] Если количество триггеров равно , то общее количество знаков равно , а количество представимых ими чисел соответственно — . Как функция от , это выражение достигает максимума при равном числу e = 2,718281828….[3] При целых значениях максимум достигается для . Таким образом, наиболее экономичной является троичная система счисления (используемая в троичных ЭВМ), следом за которой идут двоичная система (традиционно используемая в большинстве распространённых ЭВМ) и четверичная.
Экономичность системы счисления — немаловажное обстоятельство с точки зрения её использования в вычислительной машине. Поэтому, хотя применение в вычислительной машине троичной системы вместо двоичной влечёт некоторые конструктивные трудности (при этом нужно пользоваться элементами, каждый из которых может находиться не в двух, а в трёх устойчивых состояниях), эта система уже была использована[4] в некоторых реально существующих вычислительных устройствах.[1]С. В. Фомин
Эквивалентное описание экономичности системы счисления можно получить, используя понятие информационной энтропии. При условии равновероятности появления каждой из цифр в записи числа информационная энтропия записи n-разрядного числа в системе счисления с основанием b принимает значение (с точностью до постоянного коэффициента). Поэтому плотность записи (то есть, количество информации на один разряд) чисел в системе счисления с основанием b равна , которая также принимает максимальное значение при b = e, а для целых значений b — при b = 3.
Если целое число в -ичной системе счисления равно
то для перевода в десятичную систему вычисляем следующую сумму:[5]
или в виде схемы Горнера:
Например:
Аналогичные действия имеют место также для дробной части:
Примечание. Иногда при переводе дробного рационального числа из десятичной системы по таким алгоритмам может получиться бесконечная периодическая дробь: например, . Чтобы обнаружить период, нужно провести итерации, описанные в первом пункте, и понять, не встретится ли та же дробная часть, что и была несколько итераций назад[7]. (О периодических дробях в разных системах счисления написано ниже.)
переведём в двоичную систему:
44 делим на 2. частное 22, остаток 0 22 делим на 2. частное 11, остаток 0 11 делим на 2. частное 5, остаток 1 5 делим на 2. частное 2, остаток 1 2 делим на 2. частное 1, остаток 0 1 делим на 2. частное 0, остаток 1
Частное равно нулю — деление закончено. Теперь, записав все остатки снизу вверх, получим число
Для дробной части алгоритм выглядит так:
0,625 умножаем на 2. Дробная часть 0,250. Целая часть 1. 0,250 умножаем на 2. Дробная часть 0,500. Целая часть 0. 0,500 умножаем на 2. Дробная часть 0,000. Целая часть 1.
Таким образом,
Для этого типа операций существует упрощённый алгоритм.[8]
Для восьмеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (2³=8), в данном случае 3, то есть триад). Преобразуем триады по таблице триад:
000 — 0; 100 — 4; 001 — 1; 101 — 5; 010 — 2; 110 — 6; 011 — 3; 111 — 7.
Для шестнадцатеричной — разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (24=16), в данном случае 4, то есть тетрад). Преобразуем тетрады по таблице тетрад:
0000 — 0; 0100 — 4; 1000 — 8; 1100 — C; 0001 — 1; 0101 — 5; 1001 — 9; 1101 — D; 0010 — 2; 0110 — 6; 1010 — A; 1110 — E; 0011 — 3; 0111 — 7; 1011 — B; 1111 — F.
Пример:
преобразуем 1011002 восьмеричная — 101 100 → 548 шестнадцатеричная — 0010 1100 → 2C16
Перевод дробной части из двоичной системы счисления в системы счисления с основаниями 8 и 16 осуществляется точно так же, как и для целых частей числа, за тем лишь исключением, что разбивка на октавы и тетрады идёт вправо от десятичной запятой, недостающие разряды дополняются нулями справа. Например, рассмотренное выше число 1100,0112 будет выглядеть как 14,38 или C,616.
Для этого типа операций также существует упрощённый алгоритм, обратный вышенаписанному алгоритму.
Для восьмеричной — преобразуем по таблице в триплеты:
0 000 4 100 1 001 5 101 2 010 6 110 3 011 7 111
Для шестнадцатеричной — преобразуем по таблице в квартеты:
0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111
Пример:
преобразуем 548 → 101 1002 2C16 → 0010 11002
Рациональное число в -ичной системе счисления представляется в виде линейной комбинации (вообще говоря, бесконечной) степеней числа :
где — цифры целой части (до разделителя), — цифры дробной части (после разделителя), — число разрядов целой части.
Конечной записью в -ичной системе счисления обладают только рациональные числа, представимые в виде , где и — целые числа, то есть такие, после умножения которых на основание за конечное число итераций возможно получить целое число:
где и представляют собой -ичные записи соответственно частного и остатка от деления на .
Рациональные числа, не представимые в виде , записываются в виде периодических дробей.
Симметричные (уравновешенные, знакоразрядные) системы счисления по основанию отличаются тем, что используют цифры не из множества , а из множества где, грубо говоря, все цифр «отражаются» относительно нуля. Чтобы цифры были целыми, нужно, чтобы было нечётным. В симметричных системах счисления не требуется дополнительных обозначений для знака числа.[9] Кроме того, вычисления в симметричных системах удобны тем, что не требуется особых правил округления — округление к ближайшему целому сводится к простому отбрасыванию лишних разрядов, что резко уменьшает систематические ошибки вычислений.
Чаще всего используется симметричная троичная система счисления с цифрами . Она применяется в троичной логике и была технически реализована в вычислительной машине «Сетунь».
Существуют позиционные системы с отрицательными основаниями, называемые нега-позиционными:
Иногда также рассматривают позиционные системы счисления с нецелочисленными основаниями: рациональными, иррациональными, трансцендентными.
Примерами таких систем счисления являются:
Основаниями позиционных систем счисления могут быть также комплексные[11][12] числа. При этом цифры в них принимают значения из некоторого конечного множества, удовлетворяющего условиям, которые позволяют выполнять арифметические операции непосредственно с представлениями чисел в этих системах счисления.
В частности, среди позиционных систем счисления с комплексными основаниями можно выделить двоичные, в которых используются лишь две цифры 0 и 1.
Далее будем записывать позиционную систему счисления в следующем виде , где — основание системы счисления, а A — множество цифр. В частности, множество A может иметь вид:
Примерами систем счисления с комплексными основаниями являются (далее j — мнимая единица):
Ниже перечислены основания двоичных позиционных систем счисления и представления чисел 2, −2 и −1 в них:
Показательные системы счисления являются частным случаем позиционных систем счисления с показательной зависимостью. Вместо показательной зависимости могут быть другие зависимости. Например, гипероператорная позиционная система счисления
позволяет записывать бо́льшие диапазоны чисел тем же числом знаков.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.