Позиционные и непозиционные системы счисления. Системы счисления
НЕПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ
Непозиционные - алфавит которых содержит неограниченное количество символов, причем количественный эквивалент любой цифры постоянен, и зависит только от ее начертания. Позиция цифр в числе значения не имеет. Непозиционные системы строятся по принципу аддитивности (англ.Add - сумма) - количественный эквивалент числа определяется как сумма цифр.
Непозиционной называется такая система счисления, в которой количественный эквивалент каждой цифры не зависит от ее положения (места, позиции) в коде числа.
Непозиционные системы счисления возникли раньше позиционных.
В этих системах счисления значение (величина) числа определяется как сумма или разность цифр в числе.
Непозиционные системы счисления имеют ряд недостатков:
- - для записи больших числе приходиться вводить новые цифры;
- - невозможно записывать дробные и отрицательные числа;
- - сложно выполнять арифметические операции.
Есть много видов Н.С.С. например: Унарная, Древниеегипетская, Алфавитная, Греческая, Римская, Вавилонская.
Рассмотрим некоторые из них.
РИМСКАЯ СИСТЕМА ЗАПИСИ
Древние римляне пользовались нумерацией, которая сохраняется до настоящего времени под именем "римской нумерации". Мы пользуемся ею для обозначения юбилейных дат, для нумерации некоторых страниц книги (например, страниц предисловия), глав в книгах, строф в стихотворениях и т. д. В позднейшем своем виде римские цифры выглядят так:
I=1; V=5; X=10; L=50; С=100; D=500; M=1000.
Прежде они имели несколько иную форму. Так, число 1000 изображалось знаком (|), а 500-знаком |).
О происхождении римских цифр достоверных сведений нет. Цифра V могла первоначально служить изображением кисти руки, а цифра Х могла составиться из двух пятерок. Точно так же знак для 1000 мог составиться из удвоения знака для 500 (или наоборот).
В римской нумерации явственно сказываются следы пятеричной системы счисления. В языке же римлян (латинском) никаких следов пятеричной системы нет. Значит, эти цифры были заимствованы римлянами у другого народа (весьма вероятно у этрусков).
Все целые числа (до 5000) записываются с помощью повторения вышеприведенных цифр. При этом, если большая цифра стоит перед меньшей, то они складываются, если же меньшая стоит перед большей (в этом случае она не может повторяться), то меньшая вычитается из большей1). Например, VI=6, т.е. 5+1, IV=4, т.е. 5-1, XL=40, т е. 50-10, LX=60, т.е. 50+10. Подряд одна и та же цифра ставится не более трех раз: LXX=70; LXXX=80; число 90 записывается ХС (а не LXXXX).
Первые 12 чисел записываются в римских цифрах так:
I, II, III, IV, V, VI, VII, VIII. IX, X, XI, XII.
XXVIII=28; ХХХ1Х=39; CCCXCVII=397; MDCCCXVIII=1818.
Выполнение арифметических действий над многозначными числами в этой записи очень трудно. Тем не менее римская нумерация преобладала в Италии до 13 века, а в других странах Западной Европы - до 16 века.
Римские цифры. Каноническим примером почти непозиционной системы счисления является римская, в которой в качестве цифр используются латинские буквы:
I обозначает 1,
Например, II = 1 + 1 = 2. Здесь символ I обозначает 1 независимо от места в числе.
На самом деле, римская система не является полностью непозиционной, так как меньшая цифра, идущая перед большей, вычитается из неё, например: IV = 4, в то время как: VI = 6
Число Римское обозначение:
- 100 C
- 500 D
- 1000 M
Для закрепления в памяти буквенных обозначений цифр в порядке убывания существует мнемоническое правило:
система счисление унарный римский
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Соответственно M, D, C, L, X, V, I.
Примеры. Число Римское обозначение:
- 8 VIII
- 31 XXXI
- 46 XLVI
- 99 XCIX
- 666 DCLXVI
- 888 DCCCLXXXVIII
- 1668 MDCLXVIII
- 1989 MCMLXXXIX
- 2009 MMIX
- 3999 MMMCMXCIX
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемьдесят LXXX, восемь VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII - в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
- - 999. Тысяча M, вычтем 1 (I), получим 999 (IM) вместо CMXCIX. Следствие: 1999 - MIM вместо MCMXCIX
- - 95. Сто C, вычтем 5 (V), получим 95 (VC) вместо XCV
- - 1950: тысяча M, вычтем 50 (L), получим 950 (LM). Следствие: 1950 - MLM вместо MCML .
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII». Применение.
В русском языке римские цифры используются в следующих случаях:
- - номер века или тысячелетия: XIX век, II тысячелетие до н. э.;
- - порядковый номер монарха: Карл V, Екатерина II;
- - номер тома в многотомной книге (иногда - номера частей книги, разделов или глав);
- - в некоторых изданиях - номера листов с предисловием к книге, чтобы не исправлять ссылки внутри основного текста при изменении предисловия;
- - маркировка циферблатов часов «под старину»;
- - иные важные события или пункты списка, например: V постулат Евклида, II мировая война, XXII съезд КПСС и т. п.
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Для записи чисел в римской системе используются два правила:
- -1- каждый меньший знак, поставленный слева от большего, вычитается из него;
- -2- каждый меньший знак, поставленный справа от большего, прибавляется к нему.
По причине неудобства и большой сложности в настоящее время римская система счисления используется там, где это действительно удобно: в литературе (нумерация глав), в оформлении документов (серия паспорта, ценных бумаг и др.), в декоративных целях на циферблате часов, в ряде других случаев.
Система счисления (Нумерация) - это способ представления числа символами некоторого алфавита, которые называются цифрами.
Путем длительного развития человечество пришло к двум видам систем счисления: позиционной и не позиционной.
Непозиционная система счисления
В самой древней нумерации употреблялся лишь знак "|" для единицы, и каждое натуральное число записывалось повторением символа единицы столько раз, сколько единиц содержится в этом числе. Сложение в такой нумерации сводилось к приписыванию единиц, а вычитание - к их вычеркиванию. Для изображения сколько-нибудь больших чисел этот способ нумерации непригоден из-за своей громоздкости.
При начальном обучении в школе, когда счет ведется в пределах одного - двух десятков, этот способ нумерации успешно применяется (счет на палочках).
В непозиционных системах счисления смысл каждого знака сохраняется и не зависит от его места в записи числа.
К более современным непозиционным системам относят египетскую иероглифическую систему нумерации, в которой имелись определенные знаки для чисел: единица - I, десять - n, сто - с и так далее; эти числа называются узловыми. Все остальные натуральные числа, называемые алгоритмическими числами, записываются единообразно при помощи единственной арифметической операции - сложения. Например, число 243 запишется в виде сс nnnn III, 301 - в виде ссс I.
К непозиционным системам относят римскую нумерацию. За узловые числа в этой системе принимают числа: единица - I, пять - V, десять - X, пятьдесят - L, сто - С, пятьсот - D, тысяча - М. Все алгоритмические числа получаются при помощи двух арифметических операций: сложения и вычитания. Вычитание производится тогда, когда знак, соответствующий меньшему узловому числу, стоит перед знаком большего узлового числа, например, VI - шесть (5+1= 6), ХС - девяносто(100-10=90), 1704 - МОССIV, 193 -СХСШ, 687 - DCLXXXII.
В римской нумерации заметны следы пятеричной системы счисления, так как в ней имеются специальные знаки для чисел 5, 50 и 500.
При записи чисел использовался не только принцип сложения, но и принцип умножения.
Например, в старо - китайской системе счисления числа 20 и 30 изображались схематически, как 2,10 и 3,10. числа 10, 100, 1000 имели определенные специальные обозначения. Число 528 записывалось так: 5,100,2,10,8. Наиболее удобными среди непозиционных систем счисления являются алфавитные системы нумерации. Примерами таких систем могут служить ионийская система (Древняя Греция), славянская, еврейская, грузинская и армянская.
Во всех алфавитных системах существенным является обозначение специальными символами - буквами в алфавитном порядке всех чисел от 1 до 9, всех десятков от 10 до 90 и всех сотен от 100 до 900. Чтобы отличать запись чисел от слов над буквами, обозначающими цифры, в греческой и славянской нумерации ставилась черта.
В греческой системе счисления число 543 записывалось: цмг (ц - 500, м- 40, г- 3). В римской системе счисления это число записывается в виде DXLIII, в египетской иероглифической - в виде ссссс nnn III.
Из этого примера видно преимущество алфавитной нумерации, в которой используется цифровой принцип обозначения единиц, десятков, сотен. В записи больших чисел в алфавитной системе уже виден переход к позиционной системе записи. Например, 32543 записывалось так:
Рис. 4
Наиболее удобными системами счисления оказались позиционные или поместные системы.
Позиционные системы счисления
Позиционная система счисления - это совокупность определений и правил, позволяющих записывать любое натуральное число с помощью некоторых значков или символов, каждый из которых имеет определенный смысл в зависимости от его места в записи числа (от его позиции). Чаще всего применяют позиционную систему счисления с фиксированным основанием. Основанием системы может быть любое натуральное число с, с>1.
Систематической записью натурального числа N по основанию с называют представление этого числа в виде суммы: N = аnсn+...+а1с, + а0, где аn, ..., а1, а0 - числа принимающие значения 0, 1, ..., с - 1, причем, аn?0.
Позиционная система счисления с основанием с называется с - ичной (двоичной, троичной и так далее). На практике чаще всего применяется десятичная с= 10).
Для обозначения чисел 0, 1, ..., с - 1 в с - ичной системе счисления используют особые знаки, называемые цифрами. Древнеиндийские математики открыли нуль - особый знак, который должен был показать отсутствие единиц определенного разряда.
Для с - ичной системы счисления нужно с цифр. Если с < 10, то применяются те же обозначения цифр, что и в десятичной системе счисления (только берутся цифры, меньше основания системы).
В системах с основанием с > 10 для чисел, больших или равных 10, не вводят специальных символов, а используют десятичную запись этих чисел, заключая эту запись в скобки. Например, в четырнадцатеричной системе имеется четырнадцать цифр: 0, 1, 2, 3 ... 9, (10), (11), (12), (13).
В системе счисления с основанием с, так же как и в десятичной системе счисления, место, занимаемое цифрой, считая, справа налево, называется разрядом.
Число N= аnс n + . . . +a1с +а0 содержит а0 единиц первого разряда, а1 единиц второго разряда, а2 единиц третьего разряда и так далее. Единица следующего разряда в с раз больше единицы предыдущего разряда.
Позиционные системы счисления удовлетворяют требованию возможности и однозначности записи любого натурального числа.
Теорема. Любое натуральное число N может быть записано в системе с основание с и притом единственным образом.
Доказательство:
1. Докажем существование представления любого натурального числа в виде:
N=anсn +a n-1 сn-1 + ... +ас+а0. (1)
Доказательство проведем методом полной математической индукции.
Представление числа N в виде (1) возможно для первых р-1 натуральных чисел 1, 2,..., с-1, так как n=1 и число совпадает с данным числом. Представление числа в виде (1) для чисел 1, 2, . . . ,с-1, очевидно, возможны только единственным способом: 1=1, 2=2,. . . ,с-1=с-1.
Предположим, что все натуральные числа N?k (к?1) представимы в виде (1). Докажем что число к+1 так же представимо в виде (1). Для этого разделим с остатком число к+1 на с:
K+l=sс+r, 0<г<с-1, (2)
где s - неполное частное и г - остаток.
Так как число s?k, то оно по предположению индукции представимо в виде (1):
s = аnсn+ . . . +a1с +а0, (3)
где 1?аn?с -1, 0? ai ?с -l, (i=0,1,..,n-1)
Подставим выражения (2) и (3), получим:
k+l= (anс+ ... +аiс +а0) с + г = аnс +... + aiс +a0с +г (4)
где 1 ? an ?с -1, 0? aj ? с -1, 0 ? г? с -1 0=0,1,. . ,n-1)
Это выражение (4) дает представление числа к+1 в виде (1):
К+1=b n+1с n+1 + bn с n + ... + b1с +b0,
где b0 =r, bi+1- ai (i=0,l,.. ,n-l)
2. Докажем единственность представления любого натурального числа в виде (1).
Доказательство проведем методом математической индукции.
Для чисел 1, 2,... , с -1 представление в виде (1) единственно.
Предположим что для всех натуральных N?k (к?1) представление в виде (1) единственно. Докажем, что число к+1 может быть представлено в виде (1) только одним способом. Для этого разделим с остатком число к+1 на с:
K+l=sс+r, 0<г< с -1 (5)
Предположим, что к+1 имеет два различных способа представления:
к+1=а nс n + аn-1 с n-1 + ....+ а1с +а() (6)
к+1 =b mс m + bm-1 с m-1 + ... + b1с +b0 (7)
Представим: равенства (6) и (7) в виде:
k+1= (а nс n-1 + an-1 с n-2+ ... + а1)с+а0 (6*)
k+1 = (b mс m-1 + bm-1 с m-2+ ... + b)с+b0 (7*)
Так как 0 ? а0 ?с -1 и 0 ? b0 ?с -1, то из (6*) и (7*) следует, что неполное частное s и остаток г в формуле (5) будут:
S= аnс n-1 + аn-1 с n-2 + ... + a1=bmс m-1 + bm-1 с m-2+ ... + b1. r = a0 = b0.
Так как s ? k, из индуктивного предположения следует, что число s имеет единственно представление в виде (1), то есть:
n-l = m-l, ai =bi , (i=0,1, . . ,n-1).
Из последнего равенства имеем а0=bо. Таким образом, n=m, ai=bi (i=0,l, . . ,n-l), но это противоречит допущению, что число k+1. имеет два различных представления (6) и (7). Следовательно, число к+1 представляется в виде (1) единственным образом. На основании принципа математической индукции утверждение справедливо для любого N . Теорема доказана.
В непозиционных системах счисления величина, обозначающая цифру, не зависит от положения в числе. К тому же, система может накладывать ограничения на расстановку цифр, например , чтобы цифры располагались по убыванию.
Существуют такие непозиционные системы счисления:
Единичная система счисления,
Пятеричная система счисления (Счёт на пятки́),
Древнеегипетская система счисления,
Вавилонская система счисления,
Алфавитные системы счисления,
Еврейская система счисления,
Греческая система счисления,
Римская система счисления,
Система счисления майя,
Кипу инков,
Рассмотрим некоторые из, приведенных выше, систем счисления.
Единичная система счисления.
С первых попыток научиться считать у людей возникла необходимость записи чисел. Сначала это было легко — зарубка либо черточка на любой поверхности отвечала за один предмет. Таким образом возникла первая система счисления — единичная .
Число в единичной системе счисления представляет собой строку из черточек (палочек), количество которых равно значению данного числа. Таким образом, урожай из 100 фиников будет равен числу, состоящему из 100 черточек.
В более позднее время для упрощения восприятия больших чисел, эти знаки стали группировать по три или по пять. Далее равнообъёмные группы знаков начали заменять новым знаком — так возникли прообразы современных цифр.
У данной системы есть значительные недостатки — чем больше число, тем длиннее строка из палочек. Кроме того, существует большая вероятность в записи числа, пропустив или случайно дописав палочку.
Изначально в счете использовали пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.
Древнеегипетская десятичная система счисления.
В Древнем Египте использовали свои символы (цифры) для обозначения чисел 1, 10, 102, 103, 104, 105, 106, 107 . Вот некоторые из них:
Почему мы ее называем десятичной? Как указано выше — люди начали группировать символы. В Египте — решили группировать по 10, оставив без изменений цифру “1”. Здесь, число 10 называется основанием десятичной системы счисления , а все символы — представление числа 10 в определенной степени.
Числа в древнеегипетской системе счисления записывали, в виде комбинаций таких символов, и все они повторялись не больше 9 раз. Результатом было сумма элементов числа. Этот метод получения значения свойственен каждой непозиционной системе счисления. Для примера посмотрите на запись числа 345:
Вавилонская шестидесятеричная система счисления.
В вавилонской системе счисления использовали только 2 символа: “прямой” клин — для единиц и “лежащий” — для десятков. Для определения значения числа нужно изображение числа разбить на разряды справа налево. Новый разряд начинается с появления прямого клина после лежачего. Для примера посмотрим на число 32:
Число 60 и все его степени так же обозначаются прямым клином, что и “1”. Поэтому вавилонская система счисления получила название шестидесятеричной системы счисления .
Все числа от 1 до 59 вавилоняне записывали в десятичной непозиционной системе, а значения больше 59 — в позиционной с основанием 60. Например, число 92:

Запись числа была не конкретной, так как не было цифры, которая обозначала бы нуль. Представление числа 92 могло обозначать не только 92=60+32 , но и, например, 3632=3600+32 . Для определения абсолютного значения числа они ввели новый символ для обозначения пропущенного шестидесятеричного разряда, что соответствует появлению цифры 0 в записи десятичного числа:
Значит, число 3632 записывают так:

Шестидесятеричная вавилонская система — первая система счисления, которая частично основана на позиционном принципе . Эту систему счисления используют и сейчас, например , для определения времени — час состоит из 60 минут, а минута из 60 секунд.
Римская система счисления.
Римская система счисления немного похожа с египетской. Здесь для обозначения чисел 1, 5, 10, 50, 100, 500 и 1000 используют заглавные латинские буквы I, V, X, L, C, D и M соответственно. Число в римской системе счисления — это набор стоящих подряд цифр.
Способы определения значения числа:
- Значение числа соответствует сумме значений его цифр. Например , число 32 в римской системе счисления записывается так XXXII=(X+X+X)+(I+I)=30+2=32
- Когда слева от большей цифры стоит меньшая, то значение это разность между большей и меньшей цифрами. Кроме того, левая цифра может быть меньше правой максимум на 1 порядок: т.е. перед L(50) и С(100) из «младших» может быть лишь X(10) , перед D(500) и M(1000) — только C(100) , перед V(5) — только I(1) ; число 444 в римской системе счисления выглядит так:
CDXLIV = (D-C)+(L-X)+(V-I) = 400+40+4=444.
- Значение равно сумме значений групп и цифр, не подходящих под 1 и 2 пункты.
Основные понятия
Система счисления - это совокупность правил записи чисел посредством конечного набора символов (цифр).
Системы счисления бывают:
- непозиционными (в этих системах значение цифры не зависит от ее позиции - положения в записи числа);
- позиционными (значение цифры зависит от позиции).
Непозиционные системы счисления
Примеры: унарная, римская, древнерусская и др.
Позиционные системы счисления
Основание системы счисления - количество различных цифр, используемых в этой системе. Вес разряда - отношение количественного эквивалента цифры в этом разряде к количественному эквиваленту той же цифры в нулевом разрядеp i = s i ,
Разряды числа нумеруются справа налево, причем младший разряд целой части (стоящий перед разделителем - запятой или точкой) имеет номер ноль. Разряды дробной части имеют отрицательные номера:
Перевод в десятичную систему счисления
По определению веса разряда
p i = s i ,
где i - номер разряда, а s - основание системы счисления.
Тогда, обозначив цифры числа как a i , любое число, записанное в позиционной системе счисления, можем представить в виде:
x = a n s n + a n-1 s n-1 + ... + a 2 s 2 + a 1 s 1 + a 0 s 0 + a -1 s -1 + ...
Например, для системы счисления с основанием 4:
1302.2 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 + 2⋅4 -1
Выполнив вычисления, мы получим значение исходного числа, записанное в десятичной системе счисления (точнее, в той, в которой производим вычисления). В данном случае:
1302.2 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 + 2⋅4 -1 =
= 1⋅64 + 3⋅16 + 0⋅4 + 2⋅1 + 2⋅0,25 =
= 64 + 48 + 2 + 0,5 = 114,5
Таким образом, для перевода числа из любой системы счисления в десятичную следует:
- пронумеровать разряды исходного числа;
- записать сумму, слагаемые которой получаются как произведения очередной цифры на основание системы счисления, возведенное в степень, равную номеру разряда;
- выполнить вычисления и записать полученный результат (указав основание новой системы счисления - 10).
Примеры:
Перевод из десятичной системы счисления
Вспомним пример перевода из системы счисления с основанием 4 в десятичную:
1302 4 = 1⋅4 3 + 3⋅4 2 + 0⋅4 1 + 2⋅4 0 = 114
Иначе это можно записать так:
114 = ((1 ⋅ 4 + 3) ⋅ 4 + 0) ⋅ 4 + 2 = 1302 4
Отсюда видно, что при делении 114 на 4 нацело в остатке должно остаться 2 - это младшая цифра при записи в четверичной системе. Частное же будет равно
(1 ⋅ 4 + 3) ⋅ 4 + 0
Деление его на 4 даст остаток - следующую цифру (0) и частное 1 ⋅ 4 + 3. Продолжая действия, получим аналогичным образом и оставшиеся цифры.
В общем случае для перевода целой части числа из десятичной системы счисления в систему с каким-либо другим основанием необходимо:
- Выполнить последовательное деление с остатком исходного числа и каждого полученного частного на основание новой системы счисления.
- Записать вычисленные остатки, начиная с последнего (т.е. в обратном порядке)
Примеры:

Системы счисления с кратными основаниями

При работе с компьютерами широко применяют двоичную систему счисления (поскольку на ней основано представление информации в компьютере), а также восьмеричную и шестнадцатеричную, запись в которых более компактна и удобна для человека. С другой стороны, благодаря тому что 8 и 16 - степени 2, переход между записью в двоичной и одной из этих систем осуществляется без вычислений.
Достаточно заменить каждый разряд шестнадцатеричной записи четырьмя (16=24 ) разрядами двоичной (и наоборот) по таблице.
| шестнадцатеричная -> двоичная | |||
| A | 3 | 2 | E |
| 1010 | 0011 | 0010 | 1110 |
| двоичная -> шестнадцатеричная | |||
| (00)10 | 1010 | 0111 | 1101 |
| 2 | A | 7 | D |
Аналогично происходит и перевод между двоичной и восьмеричной системой, только разряд восьмеричной соответствует трем разрядам двоичной (8=2 3)
| восьмеричная -> двоичная | ||||
| 5 | 3 | 2 | 1 | |
| 101 | 011 | 010 | 001 | |
| двоичная -> восьмеричная | ||||
| (0)10 | 101 | 001 | 111 | 101 |
| 2 | 5 | 1 | 7 | 5 |
Арифметика
Арифметические операции в позиционной системе с любым основанием производятся по одним и тем же правилам: сложение, вычитарние и умножение «в столбик», а деление - «уголком». Рассмотрим пример выполнения действий сложения и вычитания в двоичной, восьмеричной и шестнадцатеричной системах счисления.
Сложение
Двоичная система:
| (перенос) | ||||||||
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | ||
| |
||||||||
| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
В нулевом разряде: 1 + 0 = 0
В первом разряде: 1 + 1 = 2. 2 переносится в старший (2-й) разряд, обращаясь в единицу переноса. В первом разряде остается 2 - 2 = 0.
Во втором разряде: 0 + 1 + 1 (перенос) = 2; Переносим в старший разряд,
Продолжая вычисления, получим:
10011011 2 + 1001110 2 = 11101001 2
Восьмеричная система:
| | (перенос) | ||||
| 3 | 4 | 2 | 6 | 1 | |
| | 4 | 4 | 3 | 5 | |
| |
|||||
| 4 | 0 | 7 | 1 | 6 | |
| 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
Выполняем вычисления аналогично двоичной системе, но в старший разряд переносим 8. Получаем:
34261 8 + 4435 8 = 40716 8
Шестнадцатеричная система:
| | | (перенос) | |||
| | A | 3 | 9 | 1 | |
| | 8 | 5 | 3 | 4 | |
| |
|||||
| 1 | 2 | 8 | C | 5 | |
| 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
A391 16 + 8534 16 = 128C5 16
Вычитание
Двоичная система:
| | | (перенос) | ||||||
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | ||
| |
||||||||
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | ||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (номера разрядов) |
Системы счисления - это способы записи чисел в виде, удобном для прочтения и выполнения арифметических операций.
Уже в эпоху палеолита люди стремились группировать точки, полосы и насечки по 3,4,5, или 7. Такая группировка облегчала счет. В древности люди считали на пальцах, поэтому предметы стали группировать по 5 или 10. В дальнейшем десяток десятков получил особое название, десяток сотен - свое название. Для удобства записи числа стали обозначать особыми знаками. Поскольку в такой записи положение знака не играет роли, подобные системы счисления стали называть непозиционными. Непозиционные системы счисления использовали древние египтяне, греки и римляне. Непозиционные системы счисления были более или менее пригодны для выполнения операций сложения и вычитания, но совсем не удобны для умножения и деления.
Чтобы облегчить работу, использовали счетные доски – абаки.
Позиционные системы счисления. Десятичная система счисления
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен.
К позиционной шестидесятеричной системе перешли вавилоняне. Долгое время в вавилонской системе счета не было нуля, т. е. знака для пропущенного разряда. Сначала это не создавало неудобств, но когда стали составлять обширные математические и астрономические таблицы, возникла необходимость в таком знаке. Следы вавилонской системы счисления сохранились до наших дней в порядке счета времени (1 ч=60 мин. , 1 мин. =60 сек.).
В V1 в. , точнее в 595г. индийцы создали способ записи, использующий лишь 9 цифр. Вместо нуля оставляли пустое место, а позднее ставили точку или маленький кружок. Особый знак для нуля появился в 1Х в. были выработаны правила выполнения арифметических операций над числами в десятичной системе счисления, не требовавшие использования абака, и этот способ записи распространился по всему миру. О десятичной системе счисления подробно рассказал среднеазиатский математик аль - Хорезми. Поскольку он написал свой труд на арабском языке, то системе в Европе дали неправильное название – «арабская».
Позиционные системы с произвольным основанием.
Мы привыкли к десятичной системе счисления. Компьютеру как нельзя лучше подходит двоичная система. Но иногда могут оказаться удобными системы с другими основаниями. Счёт на дюжины прекрасный тому пример. Здесь числовая база – степени числа 12.
В общем же случае представить произвольное число N в системе счисления с заданным основанием d означает записать его в виде где d – любое целое число, большее единицы. Коэффициенты a0, а1,аn называются цифрами в d – ичной записи N. Они могут принимать лишь d значений: 0,или 1, или 2, или d-1. Заметим, что в случае d > 10 придётся придумывать новые символы для цифр.
Для нахождения цифр числа по заданному числу N и основанию d можно воспользоваться следующим способом: сначала находят самое большое базовое число, не превосходящее N. Затем число N делят на d, в результате чего получают неполное частное an и остаток r n-1, т. е.
Остаток r n-1 уже меньше базового числа, поэтому делим r n-1 на d! И получаем неполное частное an-1 и остаток r n-2:
На практике определять d-ичные цифры числа N, начиная со старшего разряда, не очень удобно. Для этой цели обычно применяют другой способ. Представим число N в виде выражения не содержащего степеней:
Отсюда видно, что цифры an an-1, a1 a0 могут быть найдены последовательно, начиная с младшего разряда, в результате следушего многошагового процесса: a0 равно остатку то деления N на d; a1 равно остатку от деления на d неполного частного, полученного на предыдущем шаге; an равно остатку от деления на d неполного частного, полученного на предыдущем шаге.
То. Что число N в d-ичной системе счисления выражается цифрами an an-1, a1 a0, записывается так:
Например: 26700 = (110100001001100)2 = (1323300)5.
Положительным рациональным числом (обыкновенной положительной дробью) называется число, которое может быть записано в виде
Где p, q-натуральные числа. Число p называется числителем дроби, а число q-ее знаменателем.
Мы знаем, что дробь не изменится, если ее числитель и знаменатель умножить на одно и то же натуральное число n; другими словами, для любого натурального числа n справедливо равенство
Если числа p и q не имеют общих простых делителей, то дробь называется несократимой или правильной.
Если знаменатель q дроби равен 10 или 100, или 1000 и т. д. , то обыкновенную дробь можно записать в виде конечной десятичной дроби, каждая из которых называется десятичным разложением соответствующей обыкновенной дроби.
Очевидно также, что всякая конечная десятичная дробь может быть записана в виде обыкновенной дроби, где p-натуральное число, а q-некоторая степень числа 10.
Если знаменатель q обыкновенной дроби есть некоторая степень числа 10, то эта дробь может быть разложена в конечную десятичную дробь. Верно и обратное утверждение: конечная десятичная дробь представляет собой десятичное разложение обыкновенной дроби, знаменатель которой есть некоторая степень числа 10.
Восьмеричная система счисления
Восьмери́чная систе́ма счисле́ния - позиционная целочисленная система счисления с основанием 8. Для представления чисел в ней используются цифры 0 до 7.
Восьмеричная система часто используется в областях, связанных с цифровыми устройствами. Характеризуется лёгким переводом восьмеричных чисел в двоичные и обратно, путём замены восьмеричных чисел на триады двоичных. Ранее широко использовалась в программировании и вообще компьютерной документации, однако в настоящее время почти полностью вытеснена шестнадцатеричной.
Если мы обращаемся к восьмеричной системе счисления, то это означает, что можно использовать гораздо больше цифр, чем это принято в двоичной, но меньше, чем в десятичной, а именно можно оперировать восемью цифрами: 0, 1, 2, 3, 4, 5, 6, 7 - и не более.
Логика конвертирования десятичных чисел в восьмеричные (кодирование в восьмеричную систему счисления) совершенно идентична приведенной выше.
Более подробная информация - в разд. "Запись целых чисел в двоичной системе счисления" данной главы.
Действительно, в определенный момент цифры заканчиваются (наступает "кризис переходного периода").
Десятичное число "8" становится восьмеричным числом "10" ("восьмеричной десяткой"). Число "9" будет восьмеричным числом "11", число "10" - восьмеричным числом "12". И так далее до десятичного числа "15", которое в восьмеричном виде равно числу "17". А дальше?
Цифры снова кончились. Как будет представлено десятичное число "16" в восьмеричной системе счисления?
178 + 1 =. , но сумма "78 + 1" равняется "10" в восьмеричной системе счисления, а, следовательно, восьмеричный "десяток" необходимо складывать с "десятком", уже имеющимся, т. е. получается сумма, присутствующая в восьмеричной системе: "1 + 1 = 2". В результате получается, что
Представим эту информацию в виде таблицы (табл. 4. 4).
Таблица 4. 4. Соответствие десятичных и восьмеричных чисел
Десятичные числа Восьмеричные числа Десятичные числа Восьмеричные числа
0-7 0-7 25-63 31-77
9-15 11-17 128 200
17-23 21-27 512 1000
Но даже такие числа все-таки мало экономны, по крайней мере, их разрядность не уступает десятичной системе, поэтому в компьютерных технологиях применяется еще одна система счисления, которая называется шестна-дцатеричной.
Система счисления - это определенный способ записи чисел и соответствующие ему правила действия над числами.
Системы счисления бывают позиционными и непозиционными.
В позиционной системе счисления величина, которую обозначает цифра в записи числа, зависит от позиции цифры в этом числе. Совокупность различных цифр, используемых в позиционной системе счисления для записи чисел, называется алфавитом системы счисления. Для представления цифр больше 10 используют латинские буквы (А=10, В=11). Основание системы счисления - это размер алфавита. Число в позиционной системе можно представить в виде суммы произведений составляющих его цифр на соответствующие степени основания системы.
Любая позиционная система вводится следующим образом. Выбирается основание р - целое число и алфавит из р цифр: О, 1, 2,. , р-1. Тогда любое число Х в этой системе представляется в виде суммы произведений:
Х = аn*рn + an-1*pn-1 + + a0*p0
Здесь Х - это число в системе с основанием p, имеющее n+1 цифру в целой части - это цифры из алфавита системы.
Перевод чисел из одной позиционной системы в другую
При переводе чисел из десятичной системы в р-ичную надо разложить десятичное число на слагаемые, содержащие степени числа р. Перевод целого десятичного числа производится путем последовательного деления числа на основание р с выделением остатков от деления до тех пор, пока частное не станет меньше делителя. Выписывая остатки от деления справа налево, получаем р-ричную запись десятичного числа.
В позиционных системах значение записи целого числа определяется по следующему правилу: пусть a na n-1a n-2a 1a 0 - запись числа A, а i – цифры, тогда
A = a n·pn+a n-1·pn-1 +a n-2·pn-2+. +a 1·p1+ a0·p0 (1), где p - целое число большее 1, которое называется основанием системы счисления
Для того, чтобы при заданном p любое неотрицательное целое число можно было бы записать по формуле (1) и притом единственным образом, числовые значения различных цифр должны быть различными целыми числами, принадлежащими отрезку от 0 до p-1.
1) Десятичная система p = 10 цифры: 0,1,2,3,4,5,6,7,8,9 число 5735 = 5·103+7·102+3·101+8·100
2) Троичная система p = 3 цифры: 0,1,2 число 2013 = 2·32+0·31+1·30
Замечание: нижним индексом в записи числа обозначается основание системы счисления, в которой записано число. Для десятичной системы счисления индекс можно не писать.
Представление отрицательных и дробных чисел:
Во всех позиционных системах для записи отрицательных чисел так же как и в десятичной системе используется знак ‘–‘. Для отделения целой части числа от дробной используется запятая. Значение записи a na n-1a n-2a 1a 0, a -1 a -2a m-2 a m-1a m числа A определяется по формуле, являющейся обобщением формулы (1):
A = an·pn+a n-1·p n-1+a n-2·p n-2++a1·p1+a0·p0+a-1·p-1+a -2·p-2++am-2·p–(m–2)+am–1·p–(m–1)+amp–m (2),
75,6 = 7·101+5·100+6·10–1
–2,3145 = –(2·50+3·5–1+1·5–2+4·5–3)
Перевод чисел из произвольной системы счисления в десятичную:
Следует понимать, что при переводе числа из одной системы счисления в другую количественное значение числа не изменяется, а меняется только форма записи числа, так же как при переводе названия числа, например, с русского языка на английский.
Перевод чисел из произвольной системы счисления в десятичную выполняется непосредственным вычислением по формуле (1) для целых и формуле (2) для дробных чисел.
Перевод чисел из десятичной системы счисления в произвольную.
Перевести число из десятичной системы в систему с основанием p – значит найти коэффициенты в формуле (2). Иногда это легко сделать простым подбором. Например, пусть нужно перевести число 23,5 в восьмеричную систему. Нетрудно заметить, что 23,5 = 16+7+0,5 = 2·8+7+4/8 = 2·81+7·80+4·8–1 =27,48. Понятно, что не всегда ответ столь очевиден. В общем случае применяется способ перевода отдельно целой и дробной частей числа.
Для перевода целых чисел применяется следующий алгоритм (полученный на основании формулы (1)):
1. Найдем частное и остаток от деления числа на p. Остаток будет очередной цифрой ai (j=0,1,2) записи числа в новой системе счисления.
2. Если частное равно нулю, то перевод числа закончен, иначе применяем к частному пункт 1.
Замечание 1. Цифры ai в записи числа нумеруются справа налево.
Замечание 2. Если p>10, то необходимо ввести обозначения для цифр с числовыми значениями, большими или равными 10.
Перевести число 165 в семеричную систему счисления.
165:7 = 23 (остаток 4) => a0 = 4
23:7 = 3 (остаток 2) => a1 = 2
3:7 = 0 (остаток 3) => a2 = 3
Выпишем результат: a2a1a0, т. е. 3247.
Выполнив проверку по формуле (1), убедимся в правильности перевода:
3247=3·72+2·71+4·70=3·49+2·7+4 = 147+14+4 = 165.
Для перевода дробных частей чисел применяется алгоритм, полученный на основании формулы (2):
1. Умножим дробную часть числа на p.
2. Целая часть результата будет очередной цифрой am (m = –1,–2, –3) записи числа в новой системе счисления. Если дробная часть результата равна нулю, то перевод числа закончен, иначе применяем к ней пункт 1.
Замечание 1. Цифры am в записи числа располагаются слева направо в порядке возрастания абсолютного значения m.
Замечание 2. Обычно количество дробных разрядов в новой записи числа ограничивается заранее. Это позволяет выполнить приближенный перевод с заданной точностью. В случае бесконечных дробей такое ограничение обеспечивает конечность алгоритма.
Перевести число 0,625 в двоичную систему счисления.
0,625·2 = 1,25 (целая часть 1) => a-1 =1
0,25·2 = 0,5 (целая часть 0) => a-2 = 0
0,5·2 = 1,00 (целая часть 1) => a-3 = 1
Итак, 0,62510 = 0,1012
Выполнив проверку по формуле (2), убедимся в правильности перевода:
0,1012=1·2-1+0·2-2+1·2-3=1/2+1/8 = 0,5+0,125 = 0,625.
Перевести число 0,165 в четверичную систему счисления, ограничившись четырьмя четверичными разрядами.
0,165·4 = 0,66 (целая часть 0) => a-1=0
0,66·4 = 2,64 (целая часть 2) => a-2= 2
0,64·4 = 2,56 (целая часть 2) => a-3= 2
0,56·4 = 2,24 (целая часть 2) => a-4= 2
Итак, 0,16510 ” 0,02224
Выполним обратный перевод, чтобы убедиться, что абсолютная погрешность не превышает 4–4:
0,02224 = 0·4-1+2·4-2+2·4-3+2·4-4= 2/16+2/64+2/256 = 1/8+1/32+1/128 = 21/128 = 0,1640625
0,1640625–0,165 = 0,00094
Перевод чисел из одной произвольной системы в другую
В этом случае сначала следует выполнить перевод числа в десятичную систему, а затем из десятичной в требуемую.
Особым способом выполняется перевод чисел для систем с кратными основаниями.
Пусть p и q – основания двух систем счисления. Будем называть эти системы системами счисления с кратными основаниями, если p = qn или q = pn, где n – натуральное число. Так, например, системы счисления с основаниями 2 и 8 являются системами счисления с кратными основаниями.
Пусть p = qn и требуется перевести число из системы счисления с основанием q в систему счисления с основанием p. Разобьем целую и дробную части записи числа на группы по n последовательно записанных цифр влево и вправо от запятой. Если количество цифр в записи целой части числа не кратно n, то надо дописать слева соответствующее количество нулей. Если количество цифр в записи дробной части числа не кратно n, то нули дописываются справа. Каждая такая группа цифр числа в старой системе счисления будет соответствовать одной цифре числа в новой системе счисления.
Переведем 1100001,1112 в четверичную систему счисления.
Дописав нули и выделив пары цифр, получим 01100001,11102.
Теперь выполним перевод отдельно каждой пары цифр, пользуясь пунктом Перевод чисел из одной произвольной системы в другую.
Итак, 1100001,1112 = 01100001,11102 = 1201,324.
Пусть теперь требуется выполнить перевод из системы с большим основанием q, в систему с меньшим основанием p, т. е. q = pn. В этом случае одной цифре числа в старой системе счисления соответствует n цифр числа в новой системе счисления.
Пример: Выполним проверку предыдущего перевода числа.
1201,324 = 1100001,11102=1100001,1112
В шестнадцатеричной системе есть цифры с числовыми значениями 10,11,12, 13,14,15. Для их обозначения используют первые шесть букв латинского алфавита A, B, C, D, E, F.
Приведем таблицу чисел от 0 до 16, записанных в системах счисления с основаниями 10, 2, 8 и 16.
Число в десятичной системе счисления 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 В восьмеричной 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 В двоичной 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 В шестнадцатеричной 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 Для записи шестнадцатеричных цифр можно использовать также строчные латинские буквы a-f.
Пример: Переведем число 110101001010101010100,112 в шестнадцатеричную систему счисления.
Воспользуемся кратностью оснований систем счисления (16=24). Сгруппируем цифры по четыре, дописав, слева и справа нужное количество нулей
000110101001010101010100,11002 и, сверяясь с таблицей, получим: 1A9554,C16
В какой системе счисления лучше записывать числа – это вопрос удобства и традиций. С технической точки зрения, в ЭВМ удобно использовать двоичную систему, так как в ней для записи числа используются только две цифры 0 и 1, которые можно представить двумя легко различимыми состояниями “нет сигнала ” и “есть сигнал”.
А человеку, напротив, неудобно иметь дело с двоичными записями чисел из-за того, что они более длинные, чем десятичные и в них много повторяющихся цифр. Поэтому, при необходимости работать с машинными представлениями чисел используют восьмеричную или шестнадцатеричную системы счисления. Основания этих систем – целые степени двойки, и поэтому числа легко переводятся из этих систем в двоичную и обратно.
Двоичная система счисления. Бит и байт. Сегментация памяти.
Рассмотрим, как в памяти компьютера хранятся данные.
Вообще, как компьютер может хранить, например, слово "диск"? Главный принцип - намагничивание и размагничивание одной дорожки (назовем ее так). Одна микросхема памяти - это, грубо говоря, огромное количество дорожек. Сейчас попробуем разобраться. Например: нуль будет обозначаться как 0000 (четыре нуля), один 0001, два 0010,
(т. е. правую единицу заменяем на 0 и вторую устанавливаем в 1).
Уловили принцип? "0" и "1" - это т. н. биты. Один бит, как вы уже заметили, может быть нулем или единицей, т. е. размагничена или намагничена та или иная дорожка ("0" и "1" это условное обозначение). Если еще присмотреться, то можно заметить, что каждый следующий установленный бит (начиная справа) увеличивает число в два раза: 0001 в нашем примере = 1; 0010 два; 0100 четыре; 1000 восемь и т. д. Это и есть т. н. двоичная форма представления данных.
Т. о. чтобы обозначить числа от 0 до 9 нам нужно четыре бита (хоть они и не до конца использованы. Можно было бы продолжить: десять 1010, одиннадцать 1011 , пятнадцать 1111).
Компьютер хранит данные в памяти именно так. Для обозначения какого-нибудь символа (цифры, буквы, запятой, точки.) в компьютере используется определенное количество бит. Компьютер "распознает" 256 (от 0 до 255) различных символов по их коду. Этого достаточно, чтобы вместить все цифры (0 - 9), буквы латинского алфавита (a - z, A - Z), русского (а - я, А - Я), а также другие символы. Для представления символа с максимально возможным кодом (255) нужно 8 бит. Эти 8 бит называются байтом. Т. о. один любой символ - это всегда 1 байт.
Т. о. слово "диск" будет занимать 4 байта или 4*8 = 32 бита. Как вы уже поняли, компьютер хранит в памяти не сами буквы этого слова, а последовательность "единичек" и "ноликов". "Почему же тогда на экране мы видим текст, а не "единички-нолики"? - спросите вы. Чтобы удовлетворить ваше любопытство, я забегу немного вперед и скажу, что всю работу по выводу самого символа на экран (а не битов) выполняет видеокарта (видеоадаптер), которая находится в вашем компьютере. И если бы ее не было, то мы, естественно, ничего бы не видели, что у нас творится на экране.
В Ассемблере после двоичного числа всегда должна стоять буква "b". Это нужно для того, чтобы при ассемблировании нашей программы Ассемблер смог отличать десятичные, шестнадцатеричные и двоичные числа. Например: 10 - это "десять", 10h - это "шестнадцать" а 10b - это "два" в десятичной системе.
Т. о. в регистры можно загружать двоичные, десятичные и шестнадцатеричные числа.
Например: mov ax,20 mov bh,10100b mov cl,14h
В результате в регистрах AX, BH и CL будет находится одно и тоже число, только загружаем мы его в разных системах. Компьютер же будет хранить его в двоичном формате (как в регистре BH).
Итак, подведем итог. В компьютере вся информация хранится в двоичном формате (двоичной системе) примерно в таком виде: 10101110 10010010 01111010 11100101 (естественно, без пробелов. Для удобства я разделили биты по группам). Восемь бит - это один байт. Один символ занимает один байт, т. е. восемь бит. По-моему, ничего сложного. Очень важно уяснить данную тему, так как мы будем постоянно пользоваться двоичной системой, и вам необходимо знать ее на "отлично".
Зачем нужны различные позиционные системы?
Позиционные системы с различными основаниями используются для изучения свойств чисел уже не одну сотню лет. Например, с помощью записи целых чисел в различных системах можно получить признаки делимости. Рассмотрение некоторых других вопросов теории делимости также облегчается использованием недесятичных позиционных систем.
Однако этот вопрос занимал лишь сравнительно небольшой круг людей, главным образом специалистов в области так называемой высшей арифметики – теории чисел. Но положение изменилось с момента возникновения и широкого распространения вычислительных машин.
Конструкция цифровых вычислительных машин тесно связана с принятой системой счисления.
Вычислительные устройства.
Простейшим цифровым вычислительным устройством являются хорошо известные русские счёты. В них для изображения числа используются спицы с надетыми на них косточками. Количество спиц соответствует количеству разрядов, отведённых для изображения числа. Каждая спица может находиться в различных состояниях, определяемых количеством опущенных косточек. Так как в десятичной системе имеется десять различных цифр, то для их изображения нужно иметь десять различных состояний. Для этого на каждую спицу надевают десять косточек.
Русские счёты
Другим примером цифровой вычислительной машины является арифмометр. Здесь для изображения различных цифр в каждом разряде используется зубчатая шестерёнка. Окружность колёсика, из которого эта шестерёнка сделана, разбивается на 10 частей. На каждой такой части имеется зубец шестерёнки. Поворачиваясь вокруг своей оси, шестерёнка может останавливаться только в таких положениях, когда какой-либо её зубец устанавливается против окошка в корпусе арифмометра. На каждом зубце шестерёнки написана соответствующая цифра.
Рассмотренные примеры показывают, что применяемая для записи чисел позиционная система счисления предъявляет свои требования к конструкции вычислительных машин: десять косточек на спице, десять зубцов шестерёнке и десять ступенек на валике объясняются тем, что число изображается в десятичной системе счисления.