Позиционная система представления (счисления) целых без знака
Введенная примитивная система представления целых без знака страдает одним существенным недостатком: очень большое число знаков (единиц) в записи числа. Причем длина записи пропорциональна величине числа.
Каждый, наверное, занимался усовершенствованием системы примитивных записей целых без знака. Для этого последовательность единиц группировалась в десятки, десятки группировались в сотни и т.д.
Проделав такое позиционирование, можно представить число в следующем виде:
...((d3*10+d2*10)*10+d1)*10+d0
Здесь, d3,d2,d1,d0 - полное число тысяч, сотен, десятков и единиц соответственно.
Мы перешли к алфавитной системе кодирования целого числа без знака, предложенной, как считается, арабами и основанной на следующих принципах:
* вводится конечное, относительно небольшое число знаков - алфавит цифр;
* обозначения строятся как линейные последовательности (цепочки) знаков алфавита.
Используя конечный алфавит, можно получить бесконечное количество различных цепочек, каждая из которых обозначает одно и только одно целое число без знака (число является уникальным). Теперь построим это множество цепочек таким образом, чтобы существовали простые алгоритмы выполнения арифметических операций.
Прежде всего выделим два целых числа без знака, которые играют особую роль: число, обозначаемое как 0, характеризует отсутствие элементов в множестве; число, обозначаемое как 1, характеризует минимально возможное увеличение или уменьшение числа элементов в множестве.
Концепция позиционной В-ичной системы кодирования (счисления) целых чисел без знака заключается в четырех пунктах.
1. Выбирается произвольное, большее единицы, число, которое называется основанием системы счисления и обозначается как B. Числа меньшие B образуют базу системы счисления.
2. Для чисел базы выбираются уникальные обозначения, которые называются цифрами.
3. Любое целое число без знака единственным образом представляется с помощью чисел базы системы счисления и операций сложения - умножения в виде канонического арифметического выражения:
ЗНАЧЕНИЕв(цбз) = (dn-1*Bn-1+dn-2*Bn-2+...+d1*B1+d0*B0)в.
4. Последовательность коэффициентов канонического арифметического выражения также единственным образом характеризует величину числа и называется записью числа в В-ичной системе кодирования (счисления):
ЗАПИСЬв(цбз) = (dn-1dn-2...d1d0))в
При этом о коэффициенте di принято говорить как об i-м разряде числа, а об n - как о количестве разрядов числа. Диапазон чисел 0 ¸ n-1 называется разрядной сеткой числа.
Примечание. Подобная система обозначений называется позиционной, потому что в каноническом арифметическом выражении каждое число базы, представленное цифрой, вносит в значение числа вклад, пропорциональный позиции, в которой эта цифра располагается.
В практике вычислений именно такие записи используются для обозначения чисел.
Пример.
Запись числа в 10-й системе [125]10 =
каноническое выражение 10-й системы [1*102+2*101+5*100]10
запись 8-й системы [125]8 =
каноническое выражение 8-й системы [1*82+2*81+5*80]8
Очевидно, что одно и то же число может быть представлено в различных системах счисления. В модельном мире человек использует десятичную позиционную систему счисления. В компьютерном мире используется двоичная позиционная система счисления. Кроме того, используются вспомогательные восьмеричная и шестнадцатеричная системы счисления.
Десятичная система счисления также используется для вычислений при переводе одного и того же числа из одной системы счисления в другую. Прежде всего она используется для представления оснований различных систем счисления:
[10]2 = 2, [10]8 = 8, [10]16 = 16.
Существует формула, позволяющая определить число q различных n - разрядных чисел в системе счисления с основанием B:
q = Bn.
Для того чтобы все эти числа выписать, следует воспользоваться простым правилом:
* образуется таблица, состоящая из n столбцов и Bn строк;
* столбцы нумеруются справа - налево: n-1, n-2,...,1, 0;
* в столбце 0 записывается последовательность: 010101;
* в столбце 1 записывается последовательность: 00110011;
* в столбце 2 записывается последовательность: 0000111100001111;
* в столбце i записывается последовательность: .
Так, например, имея в своем распоряжении 3 двоичных разряда, можно записать в них 23 = 8 различных двоичных числа (Табл. 1.1).
Таблица 1.1 - Правило образования записей трехразрядного двоичного числа
разряды числа | ||
Ниже приведена таблица записей цифр (заштрихованы) и чисел типа целое без знака в различных системах счисления.
Таблица 1.2 - Цифры и числа в различных системах счисления
Основание системы счисления | Основание системы счисления | ||||||||
Число | Число | ||||||||
Нуль | Восемь | ||||||||
Один | Девять | ||||||||
Два | Десять | A | |||||||
Три | Одиннадцать | B | |||||||
Четыре | Двенадцать | C | |||||||
Пять | Тринадцать | D | |||||||
Шесть | Четырнадцать | E | |||||||
Семь | Пятнадцать | F | |||||||
Шестнадцать |
Любая позиционная система счисления (кодирования) решает проблему обозначения целых чисел без знака:
* любое целое без знака может быть обозначено последовательностью цифр - записью числа;
* записи чисел допускают простые алгоритмы выполнения арифметических операций, например: ЗАПИСЬ (первое слагаемое) + ЗАПИСЬ (второе слагаемое) = ЗАПИСЬ (сумма двух слагаемых).
Запись числа является кодом числа и представляется последовательностью цифр. Позиция цифры в этой последовательности называется разрядом числа. Разряды числа нумеруются справа налево.
Рисунок 1.1 - Позиционная запись числа
Позиционное представление целого числа без знака основано на том, что значение любого такого числа может быть однозначно выражено через значение чисел базы и значение основания системы счисления. При таком выражении используются операции алгебры целых неотрицательных чисел. Таким образом,
значение любого числа представляется в виде канонического арифметического выражения (арифметического выражения специфического вида).
Рисунок 1.2 - Каноническое арифметическое выражение
Можно также определить В-ично десятичную систему обозначения чисел. В этом случае цифры В-ичной системы представляются десятичными числами. Например: (AF7)16 ®(10,15,7)16-10. Следует иметь в виду, что простых алгоритмов выполнения арифметических операций для такой системы не существует