Системы счисления. Исторические системы счисления

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

Что это значит?

Начнем с определения основного понятия. Как отмечает учебник "Информатика", система счисления - записи чисел, в которой используется специальный алфавит или определенный набор цифр.

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

В позиционных системах значение цифры меняется вместе с ее положением в числе. Так, если взять число 234, то цифра 4 в ней означает единицы, если же рассмотреть число 243, то тут она будет уже означать десятки, а не единицы.

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

Непозиционные системы

К непозиционным системам счисления относятся:

  1. Единичная система, которая считается одной из первых. В ней вместо цифр использовались палочки. Чем их было больше, тем больше было значение числа. Встретить пример чисел, записанных таким образом, можно в фильмах, где речь идет о потерянных в море людях, заключенных, которые отмечают каждый день с помощью зарубок на камне или дереве.
  2. Римская, в которой вместо цифр использовались латинские буквы. Используя их, можно записать любое число. При этом его значение определялось с помощью суммы и разницы цифр, из которых состояло число. Если слева от цифры находилось меньшее число, то левая цифра вычиталась из правой, а если справа цифра была меньше или равна цифре слева, то их значения суммировались. Например, число 11 записывалось как XI, а 9 - IX.
  3. Буквенные, в которых числа обозначались с помощью алфавита того или иного языка. Одной из них считается славянская система, в которой ряд букв имел не только фонетическое, но и числовое значение.
  4. в которой использовалось всего два обозначения для записи - клинья и стрелочки.
  5. В Египте тоже использовались специальные символы для обозначения чисел. При записи числа каждый символ мог использоваться не более девяти раз.

Позиционные системы

Большое внимание уделяется в информатике позиционным системам счисления. К ним относятся следующие:

  • двоичная;
  • восьмеричная;
  • десятичная;
  • шестнадцатеричная;
  • шестидесятеричная, используемая при счете времени (к примеру, в минуте - 60 секунд, в часе - 60 минут).

Каждая из них обладает своим алфавитом для записи, правилами перевода и выполнения арифметических операций.

Десятичная система

Данная система является для нас наиболее привычной. В ней используются цифры от 0 до 9 для записи чисел. Они также носят название арабских. В зависимости от положения цифры в числе, она может обозначать разные разряды - единицы, десятки, сотни, тысячи или миллионы. Ее мы пользуемся повсеместно, знаем основные правила, по которым производятся арифметические операции над числами.

Двоичная система

Одна из основных систем счисления в информатике - двоичная. Ее простота позволяет компьютеру производить громоздкие вычисления в несколько раз быстрее, нежели в десятичной системе.

Для записи чисел используется лишь две цифры - 0 и 1. При этом, в зависимости от положения 0 или 1 в числе, его значение будет меняться.

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

Восьмеричная система

Еще одна известная компьютерная система счисления, в которой применяются цифры от 0 до 7. Применялась в основном в тех областях знаний, которые связаны с цифровыми устройствами. Но в последнее время она употребляется значительно реже, так как на смену ей пришла шестнадцатеричная система счисления.

Двоично-десятичная система

Представление больших чисел в двоичной системе для человека - процесс довольно сложный. Для его упрощения была разработана Используется она обычно в электронных часах, калькуляторах. В данной системе из десятичной системы в двоичную преобразуется не все число, а каждая цифра переводится в соответствующий ей набор нулей и единиц в двоичной системе. Аналогично происходит и перевод из двоичной системы в десятичную. Каждая цифра, представленная в виде четырехзначного набора нулей и единиц, переводится в цифру десятичной системы счисления. В принципе, нет ничего сложного.

Для работы с числам в данном случае пригодится таблица систем счисления, в которой будет указано соответствие между цифрами и их двоичным кодом.

Шестнадцатеричная система

В последнее время все большую популярность приобретает в программировании и информатике система счисления шестнадцатеричная. В ней используются не только цифры от 0 до 9, но и ряд латинских букв - A, B, C, D, E, F.

При этом, каждая из букв имеет свое значение, так A=10, B=11, C=12 и так далее. Каждое число представляется в виде набора из четырех знаков: 001F.

Перевод чисел: из десятичной в двоичную

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

Для того, чтобы перевести число из десятичной системы в двоичную, необходимо последовательно делить его на основание системы счисления, то есть, число два. При этом, остаток от каждого деления необходимо фиксировать. Так будет происходить до тех пор, пока остаток от деления не будет меньше или равен единице. Проводить вычисления лучше всего в столбик. Затем полученные остатки от деления записываются в строку в обратном порядке.

Например, переведем число 9 в двоичную систему:

Делим 9, так как число не делится нацело, то берем число 8, остаток будет 9 - 1 = 1.

После деления 8 на 2 получаем 4. Снова делим его, так как число делится нацело - получаем в остатке 4 - 4 = 0.

Проводим ту же операцию с 2. В остатке получаем 0.

В итоге деления у нас получается 1.

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

Перевод чисел: из двоичной в десятичную

Довольно легко переводить числа и в десятичную систему счисления из двоичной. Для этого достаточно знать правила возведения чисел в степень. В данном случае, в степень двойки.

Алгоритм перевода следующий: каждую цифру из кода двоичного числа необходимо умножить на двойку, причем, первая двойка будет в степени m-1, вторая - m-2 и так далее, где m - количество цифр в коде. Затем сложить результаты сложения, получив целое число.

Для школьников этот алгоритм можно объяснить проще:

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

Для примера разберем с вами полученное ранее число 1001, переведя его в десятичную систему, и заодно проверим правильность наших вычислений.

Выглядеть это будет следующим образом:

1*2 3 + 0*2 2 +0*2 1 +1*2 0 = 8+0+0+1 =9.

При изучении данной темы удобно использовать таблицу со степенями двойки. Это существенно уменьшит количество времени, необходимое для проведения вычислений.

Другие варианты перевода

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

Арифметические операции

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

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

Заучивать их необязательно - достаточно просто распечатать и иметь под рукой. Также можно воспользоваться калькулятором на ПК.

Одна из важнейших тем в информатике - система счисления. Знание этой темы, понимание алгоритмов перевода чисел из одной системы в другую - залог того, что вы сможете разобраться в более сложных темах, таких как алгоритмизация и программирование и сможете самостоятельно написать свою первую программу.

Возникновение которой связано со счётом на пальцах. В средневековой Европе она появилась через итальянских купцов, в свою очередь заимствовавших её у жителей Средней Азии.

Определения

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

x = ∑ k = 0 n − 1 a k b k {\displaystyle x=\sum _{k=0}^{n-1}a_{k}b^{k}} , где a k {\displaystyle \ a_{k}} - это целые числа, называемые цифрами , удовлетворяющие неравенству 0 ≤ a k ≤ b − 1. {\displaystyle 0\leq a_{k}\leq b-1.} x = a n − 1 a n − 2 … a 0 . {\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.

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

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

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

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

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

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

Например:

101100 2 = = 1 · 2 5 + 0 · 2 4 + 1 · 2 3 + 1 · 2 2 + 0 · 2 1 + 0 · 2 0 = = 1 · 32 + 0 · 16 + 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 = = 32 + 8 + 4 + 0 = 44 10

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

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

44 10 {\displaystyle 44_{10}} переведём в двоичную систему:

44 делим на 2. частное 22, остаток 0 22 делим на 2. частное 11, остаток 0 11 делим на 2. частное 5, остаток 1 5 делим на 2. частное 2, остаток 1 2 делим на 2. частное 1, остаток 0 1 делим на 2. частное 0, остаток 1

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

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

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

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

000 0 100 4 001 1 101 5 010 2 110 6 011 3 111 7

Для шестнадцатеричной - разбиваем переводимое число на количество цифр, равное степени 2 (2 возводится в ту степень, которая требуется, чтобы получить основание системы, в которую требуется перевести (2 4 =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

Преобразуем 101100 2 восьмеричная - 101 100 → 54 8 шестнадцатеричная - 0010 1100 → 2C 16

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

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

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

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

Преобразуем 54 8 → 101 100 2C 16 → 0010 1100

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

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

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

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

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

Итак, число 1100,011 2 = 12,375 10 .

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

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

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

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

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

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

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

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

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

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

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

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

Симметричные (уравновешенные, знакоразрядные) системы счисления отличаются тем, что используют цифры не из множества { 0 , 1 , … , b − 1 } {\displaystyle \{0,1,\ldots ,b-1\}} , а из множества { 0 − (b − 1 2) , 1 − (b − 1 2) , … , (b − 1) − (b − 1 2) } {\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} было нечётным. В симметричных системах счисления не требуется дополнительных обозначений для знака числа. Кроме того, вычисления в симметричных системах удобны тем, что не требуется особых правил округления - оно сводится к простому отбрасыванию лишних разрядов, что резко уменьшает систематические ошибки вычислений.

Чаще всего используется симметричная троичная система счисления с цифрами { − 1 , 0 , 1 } {\displaystyle \{-1,0,1\}} . Она применяется в троичной логике и была технически реализована в вычислительной машине «Сетунь ».

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

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

  • -2 - нега-двоичная система счисления
  • -3 - нега-троичная система счисления
  • -10 - нега-десятичная система счисления

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

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

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

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

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

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

Примеры

Далее будем записывать позиционную систему счисления в следующем виде ⟨ ρ , A ⟩ {\displaystyle \langle \rho ,A\rangle } , где ρ {\displaystyle \rho } - основание системы счисления, а A - множество цифр. В частности, множество A может иметь вид:

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

  • ⟨ ρ = j R , B R ⟩ . {\displaystyle \langle \rho =j{\sqrt {R}},B_{R}\rangle .}
  • ⟨ ρ = 2 e ± j π / 2 , B 2 ⟩ . {\displaystyle \langle \rho ={\sqrt {2}}e^{\pm j\pi /2},B_{2}\rangle .}
  • ⟨ ρ = 2 e j π / 3 , { 0 , 1 , e 2 j π / 3 , e − 2 j π / 3 } ⟩ ; {\displaystyle \langle \rho =2e^{j\pi /3},\{0,1,e^{2j\pi /3},e^{-2j\pi /3}\}\rangle ;}
  • ⟨ ρ = R , B R ⟩ , {\displaystyle \langle \rho ={\sqrt {R}},B_{R}\rangle ,} где φ = ± arccos ⁡ (− β / 2 R) {\displaystyle \varphi =\pm \arccos {(-\beta /2{\sqrt {R}})}} , β < min { R , 2 R } {\displaystyle \beta <\min\{R,2{\sqrt {R}}\}} - целое положительное число, которое может принимать несколько значений при данном R ;
  • ⟨ ρ = − R , A R 2 ⟩ , {\displaystyle \langle \rho =-R,A_{R}^{2}\rangle ,} где множество A R 2 {\displaystyle A_{R}^{2}} состоит из комплексных чисел вида r m = α m 1 + j α m 2 {\displaystyle r_{m}=\alpha _{m}^{1}+j\alpha _{m}^{2}} , а числа α m ∈ B R . {\displaystyle \alpha _{m}\in B_{R}.} Например: ⟨ − 2 , { 0 , 1 , j , 1 + j } ⟩ ; {\displaystyle \langle -2,\{0,1,j,1+j\}\rangle ;}

Известно множество способов представления чисел. В любом случае число изображается символом или группой символов (словом) некоторого алфавита. Такие символы называют цифрами.

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

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

Непозиционные системы счисления

Как только люди начали считать, у них появилась потребность в записи чисел. Находки археологов на стоянках первобытных людей свидетельствуют о том, что первоначально количество предметов отображали равным количеством каких-либо значков (бирок): зарубок, черточек, точек. Позже, для облегчения счета, эти значки стали группировать по три или по пять. Такая система записи чисел называется единичной (унарной) , так как любое число в ней образуется путём повторения одного знака, символизирующего единицу. Отголоски единичной системы счисления встречаются и сегодня. Так, чтобы узнать, на каком курсе учится курсант военного училища, нужно сосчитать, какое количество полосок нашито на его рукаве. Сами того не осознавая, единичной системой счисления пользуются малыши, показывая на пальцах свой возраст, а счетные палочки используется для обучения учеников 1–го класса счету. Рассмотрим различные системы счисления.

Единичная система – не самый удобный способ записи чисел. Записывать таким образом большие количества утомительно, да и сами записи при этом получаются очень длинными. С течением времени возникли иные, более удобные, системы счисления.

Древнеегипетская десятичная непозиционная система счисления . Примерно в третьем тысячелетии до нашей эры древние египтяне придумали свою числовую систему, в которой для обозначения ключевых чисел 1, 10, 100 и т.д. использовались специальные значки – иероглифы. Все остальные числа составлялись из этих ключевых при помощи операции сложения. Система счисления Древнего Египта является десятичной, но непозиционной. В непозиционных системах счисления количественный эквивалент каждой цифры не зависит от ее положения (места, позиции) в записи числа. Например, чтобы изобразить 3252 рисовали три цветка лотоса (три тысячи), два свернутых пальмовых листа (две сотни), пять дуг (пять десятков) и два шеста (две единицы). Величина числа не зависела от того, в каком порядке располагались составляющие его знаки: их можно было записывать сверху вниз, справа налево или вперемежку.

Римская система счисления . Примером непозиционной системы, которая сохранилась до наших дней, может служить система счисления, которая применялась более двух с половиной тысяч лет назад в Древнем Риме. В основе римской системы счисления лежали знаки I (один палец) для числа 1, V (раскрытая ладонь) для числа 5, X (две сложенные ладони) для 10, а для обозначения чисел 100, 500 и 1000 стали применять первые буквы соответствующих латинских слов (Сentum – сто, Demimille – половина тысячи, Мille – тысяча). Чтобы записать число, римляне разлагали его на сумму тысяч, полутысяч, сотен, полусотен, десятков, пятков, единиц. Например, десятичное число 28 представляется следующим образом:

XXVIII=10+10+5+1+1+1 (два десятка, пяток, три единицы).

Для записи промежуточных чисел римляне использовали не только сложение, но и вычитание. При этом применялось следующее правило: каждый меньший знак, поставленный справа от большего, прибавляется к его значению, а каждый меньший знак, поставленный слева от большего, вычитается из него. Например, IX – обозначает 9, XI – обозначает 11.

Десятичное число 99 имеет следующее представление:

XCIХ = –10+100–1+10.

Римскими цифрами пользовались очень долго. Еще 200 лет назад в деловых бумагах числа должны были обозначаться римскими цифрами (считалось, что обычные арабские цифры легко подделать). Римская система счисления сегодня используется, в основном, для наименования знаменательных дат, томов, разделов и глав в книгах.

Алфавитные системы счисления . Более совершенными непозиционными системами счисления были алфавитные системы. К числу таких систем счисления относились греческая, славянская, финикийская и другие. В них числа от 1 до 9, целые количества десятков (от 10 до 90) и целые количества сотен (от 100 до 900) обозначались буквами алфавита. В алфавитной системе счисления Древней Греции числа 1, 2, ..., 9 обозначались первыми девятью буквами греческого алфавита, и т.д. Для обозначения чисел 10, 20, ..., 90 применялись следующие 9 букв а для обозначения чисел 100, 200, ..., 900 – последние 9 букв.

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

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

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

  • Существует постоянная потребность введения новых знаков для записи больших чисел.
  • Невозможно представлять дробные и отрицательные числа.
  • Сложно выполнять арифметические операции, так как не существует алгоритмов их выполнения.

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

В позиционных системах счисления – количественный эквивалент каждой цифры зависит от ее положения (позиции) в коде(записи) числа. Ныне мы привыкли пользоваться десятичной позиционной системой - числа записываются с помощью 10 цифр. Самая правая цифра обозначает единицы, левее - десятки, ещё левее - сотни и т.д.

Например: 1) шестидесятеричная (Древний Вавилон)– первая позиционная система счисления. До сих пор при измерении времени используется основание равное 60 (1мин = 60с, 1ч = 60мин); 2) двенадцатеричная система счисления (широкое распространение получила в XIX в. число 12 – “дюжина”: в сутках две дюжины часов). Счёт не по пальцам, а по суставам пальцев. На каждом пальце руки, кроме большого, по 3 сустава – всего 12; 3) в настоящее время наиболее распространёнными позиционными системами счисления являются десятичная, двоичная, восьмеричная и шестнадцатеричная (широко используется в низкоуровневом программировании и вообще в компьютерной документации, поскольку в современных компьютерах минимальной единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами).

В любой позиционной системе число может быть представлено в виде многочлена.

Покажем, как представляют в виде многочлена десятичное число:

Типы систем счисления

Самое главное, что нужно знать о системе счисления – её тип: аддитивная или мультипликативная . В первом типе каждая цифра имеет своё значение, и для прочтения числа нужно сложить все значения использованных цифр:

XXXV = 10+10+10+5 = 35; CCXIX = 100+100+10–1+10 = 219;

Во втором типе каждая цифра может иметь разные значения в зависимости от своего местоположения в числе:

(иероглифы по порядку: 2, 1000, 4, 100, 2, 10, 5)

Здесь дважды использован иероглиф “2”, и в каждом случае он принимал разные значения “2000” и “20”.

2´ 1000 + 4´ 100+2´ 10+5 = 2425

Для аддитивной (“добавительной”) системы нужно знать все цифры-символы с их значениями (их бывает до 4-5 десятков), и порядок записи. Например, в Латинской записи если меньшая цифра записана перед большей, то производится вычитание, а если после, то сложение (IV = (5–1) = 4; VI = (5+1) = 6).

Для мультипликативной системы нужно знать изображение цифр и их значение, а так же основание системы счисления. Определить основание очень легко, нужно только пересчитать количество значащих цифр в системе. Если проще, то это число, с которого начинается второй разряд у числа. Мы, например, используем цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Их ровно 10, поэтому основание нашей системы счисления тоже 10, и система счисления называется “десятичная”. В вышеприведенном примере используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (вспомогательные 10, 100, 1000, 10000 и т. д. не в счет). Основных цифр здесь тоже 10, и система счисления – десятичная.

Как можно догадаться, сколько есть чисел, столько же может быть и оснований систем счисления. Но используются только самые удобные основания систем счисления. Как вы думаете, почему основание самой употребительной человеческой системы счисления 10? Да, именно потому, что на руках у нас 10 пальцев. “Но на одной то руке всего пять пальцев” – скажут некоторые и будут правы. История человечества знает примеры пятеричных систем счисления. “А с ногами – двадцать пальцев” – скажут другие, и будут тоже абсолютно правы. Именно так считали индейцы Майя. Это даже видно по их цифрам.

Очень интересно понятие “дюжина”. Всем известно, что это 12, но откуда появилось такое число – мало кто знает. Посмотрите на свои руки, вернее, на одну руку. Сколько фаланг на всех пальцах одной руки, не считая большого? Правильно, двенадцать. А большой палец предназначен отмечать отсчитанные фаланги.

А если на другой руке откладывать пальцами количество полных дюжин, то получим всем известную шестидесятеричную вавилонскую систему.

В разных цивилизациях считали по–разному, но и сейчас можно даже в языке, в названиях и изображениях цифр найти остатки совсем других систем счисления, когда–то использовавшихся этим народом.

Так у французов когда-то была двадцатеричная система счисления, поскольку 80 по-французски звучит как “четырежды двадцать”.

Римляне, или их предшественники использовали когда-то пятеричную систему, так как V ни что иное, как изображение ладони с отставленным большим пальцем, а X – это две таких же руки.

Лабораторная работа 1. «Системы счисления»

Система счисления – это правила записи чисел с помощью заданного набора специальных знаков – цифр.

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

Две первые представляют скорее исторический интерес, поскольку имеют весьма ограниченное применение в настоящее время.

Унарная система счисления

Унарная система счисления – это система счисления, в которой для записи чисел используется только один знак – 1 («палочка»).

Следующее число получается из предыдущего добавлением новой 1; их количество (сумма) равно самому числу.

Именно такая система применяется для начального обучения счету детей (можно вспомнить «счетные палочки»).

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

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

Непозиционная система счисления - система, в которой символы, обозначающие то или иное количество, не меняют сво­его значения в зависимости от местоположения (позиции) в изоб­ражении числа.

Из непозиционных наиболее распространенной можно считать римскую систему счисления.

В ней некоторые базовые числа обозначены заглавными латинскими буквами:

1 – I, 5 – V, 10 – X, 50 – L , 100 – C, 500 – D, 1000 – M.

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

    если цифра слева меньше, чем цифра справа, то левая цифра вычитается из правой;

    если цифра справа меньше или равна цифре слева, то эти цифры складываются;

Запись чисел в такой системе громоздка и неудобна, но еще более неудобным оказывается выполнение в ней даже самых простых арифметических операций.

Наконец, отсутствие нуля и знаков для чисел больше M не позволяют римскими цифрами записать любое число (хотя бы натуральное). Используется эта система для нумерации.

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

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

Упорядоченный набор символов (цифр) 0 , a v ..., а п ), используемый для представления любых чисел в заданной позиционной си­стеме счисления, называют ееалфавитом, число символов (цифр)алфавита р = п + 1 - ее основанием, а саму систему счисления называютр -ричной.

Основание позиционной системы счисления - количестворазличных цифр, используемых для изображения чисел в данной системе счисления.

Самой привычной для нас является десятичная система счисле­ния. Ее алфавит - {0, 1, 2, 3, 4, 5, б, 7, 8, 9}, а основание р = 10, т. е. в этой системе для записи любых чисел используется только десятьразных символов (цифр). Десятичная система счисления основана на том, что 10 единиц каж­дого разряда объединяются в одну единицу соседнего старшего разряда, поэтому каждый разряд имеет вес, равный степени 10. Сле­довательно, значение одной и той же цифры определяется ее местоположением в изображении числа, характеризуемым степенью числа 10. Например, в изображении числа 222.22 цифра 2 повторяется5 раз, при этом первая слева цифра 2 означает количество сотен (ее вес равен 10 2); вторая - количество десятков (ее вес равен 10 1), третья - количество единиц (ее вес равен 10 0), четвертая - количество десятых долей единицы (ее вес равен 10 -1) и пятая цифра - количество сотых долей единицы (ее вес равен 10 -2), т. е. число 222.22 может быть разложено по степеням числа 10:

222.22 = 2 10 2 + 2 10 1 + 2 10° + 2 10 -1 + 2 10 -2 .

Аналогично 725 = 7 10 2 + 2 10 1 + 5 10°;

1304.5 = 1 10 3 + 3 10 2 + 0 10 1 + 4 10° + 5 10 -1 ,

50328.15 = 5 10 4 + 0 10 3 + 3 10 2 + 2 10 1 + 8 10° + 1 10 -1 + 5 10 -2 .

В общем случае для задания р -ричной системы счисления необходимо определить основание р и алфавит, состоящий из р различ­ных символов (цифр)а р i = 1,...,р.

Любое число X p можно представить в виде поли­нома путем разложения его по степеням числаp :

последовательность из коэффициентов которого представляет со­бой сокращенную запись числа X p :

Точка, отделяющая целую часть числа от дробной, служит для фиксации конкретных значений каждой позиции в этой последо­вательности цифр и является началом отсчета.

Методы перевода чисел. Представление чисел в различных системах счисления

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

Одно и то же число может быть записано в различных системах счисления.

Алгоритм перевода целых чисел из q -ричной системы в p -ричную, при q > p

Для замены исходного числа X q равным ему числом X p нужно по правилам q -ричной арифметики целочисленно делить X q на новое основание p . Результаты деления, записанные в порядке от последнего к первому, и окажутся цифрами X p .

Поскольку коэффициенты многочлена неизвестны, обозначим их a i ; получаем:

Обычно описанную процедуру представляют в виде привычной по школе операции деления:

Таким образом, получили X 5 =443.

Проверяем правильность перевода: 4*5 2 +4*5 1 +3*5 0 =100+20+3=123 10 .

Второе, на что нужно обратить внимание – все операции выполнялись по правилам арифметики той системы счисления, от которой осуществлялся перевод (в рассмотренном примере – десятичной).

Алгоритм перевода целых чисел из q -ричной системы в p -ричную, при q < p

Для перевода необходимо представить число X q p -ричной арифметики.

X 6  X 10 , Х= 234 6

234 6 = 26 2 +36 1 +46 0 = 236+36+41 = 94 10

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

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

По этой причине переход, например X 3  X 8 проще осуществить через промежуточный переход к 10-ной системе X 3  X 10  X 8 .

Алгоритм перевода правильной дроби при q > p

Результатом перевода правильной дроби 0,X q будет также правильная дробь 0,X p , которая получится в результате умножения исходной дроби на новое основание p по правилам q -ричной арифметики; целая часть полученного произведения будет цифрой старшего разряда новой дроби; дробную часть полученного произведение следует снова умножить на p и т.д.

Пример: 0,X 10  0,X 2 . 0,Х=0,375 10

Тогда для получения 0,X 2:

0,375*2 = 0 ,750

0,75*2 = 1 ,50

0,5*2 = 1 ,0

Таким образом, 0,375 10 = 0,011 2 .

Проверяем 0,011=0*2 -1 +1*2 -2 +1*2 -3 =0,25+1,125=0,375 10

Алгоритм перевода правильной дроби при q < p

Для перевода X q X p необходимо представить число X q в форме многочлена и выполнить все операции по правилам p -ричной арифметики.

Пример: X 6  X 10 , Х 6 =0,234 6

Для этого

0,234 6 = 26 -1 +36 -2 +46 -3 =0,33(3)+0,083(3)+0,01(851)= 0,43517 10

Проверяем:

0, 43517*6=2 ,61102

0, 61102*6=3, 66612

0,66612*6=3,996724 ,0 {погрешность вычислений в случае получения иррациональных чисел}

Пример: X 2  X 10 , Х=0,10101 2

Для этого

0, 10101 2 = 12 -1 +02 -2 +12 -3 +02 -4 +12 -5 = 0,5+0,125+0,03125= 0,65625 10.

Проверяем:

0,65625*2=1 ,3125

0,3125*2=0, 625

0,625*2=1 ,25

0,25*2=0 ,5

0,5*2=1 ,0 . Все верно

Перевод чисел между системами счисления 2 – 8 – 16

Примеры изображения чисел в данных системах счисления приведены в таблице 1

Таблица 1. Системы счисления

десятичная

двоичная

десятичная

двоичная

Для перевода целого двоичного числа в систему счисления с основанием p = 2 r достаточно данное двоичное число, начиная с младшего разряда, разбить на группы в r цифр каждая и каждую группу независимо перевести в систему p .

Например, для перевода числа 110001 2 в систему счисления p=8, нужно разбить исходное число на группы по три разряда справа налево (8 = 2 3 , следовательно, r = 3) и перевести в 8-ричную систему счисления: 110001 2 =61 8 . Проверяем 110001 2 =32+16+1=49 10 , 6*8 1 +1*8 0 =49 10

Аналогично, разбивая на группы по 4 двоичные цифры, получим 110001 2 = 31 16 .

Для перевода целого числа, записанного в системе счисления с основанием p = 2 r , в двоичную систему достаточно каждую цифру исходного числа независимо заменить соответствующим r -разрядным двоичным числом, дополняя его при необходимости незначащими нулями до группы в r цифр.

Пример: представим число D3 16 в двоичной системе счисления:

Пример, 123 8 = 001010011 2 = 53 16 .

Задания для самостоятельного выполнения

    Переведите число X p p-ричной системы счисления вX q q-ричной системы счисления

    X 5  X 10 , где X 5 =123

    X 3  X 10 , где X 3 =102

    X 10  X 4 , где X 10 =123

    X 10  X 6 , где X 10 =548

    X 5  X 3 , где X 3 =421

    X 2  X 6 , где X 2 =0111001

    X 2  X 16 , где X 2 =10011

    X 2  X 8 , где X 2 =101010

    X 16  X 2 , где X 16 =AD3

    X 8  X 2 , где X 8 =5470

II. Переведите десятичное число в двоичное:

    743 10 , b) 334.12 10 , c) 61.375, d) 160.25 10 , e) 131.82 10

III. Переведите десятичное число в шестнадцатеричное число:

    445 10 , b) 334.12 10 , c) 261.375, d) 160.25 10 , e) 131.82 10

Система счисления - это способ изображения чисел и соответствующие ему правила действия над числами . Разнообразные системы счисления, которые существовали раньше и которые используются в наше время, можно разделить на непозиционные и позиционные . Знаки, используемые при записи чисел , называются цифрами.

В непозиционных системах счисления значение цифры не зависит от положения в числе .

Примером непозиционной системы счисления является римская система (римские цифры). В римской системе в качестве цифр используются латинские буквы:

Пример 1. Число CCXXXII складывается из двух сотен, трех десятков и двух единиц и равно двумстам тридцати двум.

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

Пример 2.

VI = 5 + 1 = 6; IV = 5 – 1 = 4.

Пример 3.

MCMXCVIII = 1000 + (–100 + 1000) +

+ (–10 + 100) + 5 + 1 + 1 + 1 = 1998.

В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от ее позиции . Количество используемых цифр называется основанием позиционной системы счисления.

Система счисления, применяемая в современной математике, является позиционной десятичной системой . Ее основание равно десяти, т.к. запись любых чисел производится с помощью десяти цифр:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

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

Для записи чисел в позиционной системе с основанием n нужно иметь алфавит из n цифр. Обычно для этого при n < 10 используют n первых арабских цифр, а при n > 10 к десяти арабским цифрам добавляют буквы. Вот примеры алфавитов нескольких систем:

Если требуется указать основание системы, к которой относится число, то оно приписывается нижним индексом к этому числу. Например:

101101 2 , 3671 8 , 3B8F 16 .

В системе счисления с основанием q (q -ичная система счисления) единицами разрядов служат последовательные степени числаq .q единиц какого-либо разряда образуют единицу следующего разряда. Для записи числа вq -ичной системе счисления требуетсяq различных знаков (цифр), изображающих числа 0, 1, ...,q – 1. Запись числаq вq -ичной системе счисления имеет вид 10.

Развернутая форма записи числа

Пусть Aq - число в системе с основанием q , аi - цифры данной системы счисления, присутствующие в записи числа A , n + 1 - число разрядов целой части числа, m - число разрядов дробной части числа:

Развернутой формой числа А называется запись в виде:

Например, для десятичного числа:

В следующих примерах приводится развернутая форма шестнадцатеричного и двоичного чисел:

В любой системе счисления ее основание записывается как 10.

Если все слагаемые в развернутой форме недесятичного числа представить в десятичной системе и вычислить полученное выражение по правилам десятичной арифметики, то получится число в десятичной системе, равное данному. По этому принципу производится перевод из недесятичной системы в десятичную. Например, перевод в десятичную систему написанных выше чисел производится так:

Перевод десятичных чисел в другие системы счисления

Перевод целых чисел

Целое десятичное число X требуется перевести в систему с основаниемq :X = (a n a n-1 a 1 a 0) q . Нужно найти значащие цифры числа:. Представим число в развернутой форме и выполним тождественное преобразование:

Отсюда видно, что a 0 есть остаток от деления числаX на числоq . Выражение в скобках - целое частное от этого деления. Обозначим его заX 1. Выполняя аналогичные преобразования, получим:

Следовательно, a 1 есть остаток от деленияX 1 наq . Продолжая деление с остатком, будем получать последовательность цифр искомого числа. Цифраan в этой цепочке делений будет последним частным, меньшимq .

Сформулируем полученное правило: для того чтобы перевести целое десятичное число в систему счисления с другим основанием, нужно :

1) основание новой системы счисления выразить в десятичной системе счисления и все последующие действия производить по правилам десятичной арифметики;

2) последовательно выполнять деление данного числа и получаемых неполных частных на основание новой системы счисления до тех пор, пока не получим неполное частное, меньшее делителя;

3) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления;

4) составить число в новой системе счисления, записывая его, начиная с последнего частного.

Пример 1. Перевести число 37 10 в двоичную систему.

Для обозначения цифр в записи числа используем символику: a 5 a 4 a 3 a 2 a 1 a 0

Отсюда: 37 10 = l00l0l 2

Пример 2. Перевести десятичное число 315 в восьмеричную и в шестнадцатеричную системы:

Отсюда следует: 315 10 = 473 8 = 13B 16 . Напомним, что 11 10 = B 16 .

Десятичную дробь X < 1 требуется перевести в систему с основаниемq :X = (0,a –1 a –2 …a –m+1 a –m) q . Нужно найти значащие цифры числа:a –1 , a –2 , …,a –m . Представим число в развернутой форме и умножим его наq :

Отсюда видно, что a –1 есть целая часть произведенияX на числоq . Обозначим заX 1 дробную часть произведения и умножим ее наq :

Следовательно, a –2 есть целая часть произведенияX 1 на числоq . Продолжая умножения, будем получать последовательность цифр. Теперь сформулируем правило:для того чтобы перевести десятичную дробь в систему счисления с другим основанием, нужно :

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

2) полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления;

3) составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.

Пример 3. Перевести десятичную дробь 0,1875 в двоичную, восьмеричную и шестнадцатеричную системы.

Здесь в левом столбце находится целая часть чисел, а в правом - дробная.

Отсюда: 0,1875 10 = 0,0011 2 = 0,14 8 = 0,3 16

Перевод смешанных чисел , содержащих целую и дробную части, осуществляется в два этапа. Целая и дробная части исходного числа переводятся отдельно по соответствующим алгоритмам. В итоговой записи числа в новой системе счисления целая часть отделяется от дробной запятой (точкой).

Двоичные вычисления

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

Принцип перестановочности сложения и умножения работает во всех системах счисления. Приемы выполнения вычислений с многозначными числами в двоичной системе аналогичны десятичной. Иначе говоря, процедуры сложения, вычитания и умножения “столбиком” и деления “уголком” в двоичной системе производятся так же, как и в десятичной.

Рассмотрим правила вычитания и деления двоичных чисел. Операция вычитания является обратной по отношению к сложению. Из приведенной выше таблицы сложения следуют правила вычитания:

0 - 0 = 0; 1 - 0 = 1; 10 - 1 = 1.

Вот пример вычитания многозначных чисел:

Полученный результат можно проверить сложением разности с вычитаемым. Должно получиться уменьшаемое число.

Деление - операция обратная умножению. В любой системе счисления делить на 0 нельзя. Результат деления на 1 равен делимому. Деление двоичного числа на 10 2 ведет к перемещению запятой на один разряд влево, подобно десятичному делению на десять. Например:

Деление на 100 смещает запятую на 2 разряда влево и т.д. В базовом курсе можно не рассматривать сложные примеры деления многозначных двоичных чисел. Хотя способные ученики могут справиться и с ними, поняв общие принципы.

Представление информации, хранящейся в компьютерной памяти в ее истинном двоичном виде, весьма громоздко из-за большого количества цифр. Имеется в виду запись такой информации на бумаге или вывод ее на экран. Для этих целей принято использовать смешанные двоично-восьмеричную или двоично-шестнадцатеричную системы.

Существует простая связь между двоичным и шестнадцатеричным представлением числа. При переводе числа из одной системы в другую одной шестнадцатеричной цифре соответствует четырехразрядный двоичный код. Это соответствие отражено в двоично-шестнадцатеричной таблице:

Двоично-шестнадцатеричная таблица

Такая связь основана на том, что 16 = 2 4 и число различных четырехразрядных комбинаций из цифр 0 и 1 равно 16: от 0000 до 1111. Поэтомуперевод чисел из шестнадцатеричных в двоичные и обратно производится путем формальной перекодировки по двоично-шестнадцатеричной таблице .

Вот пример перевода 32-разрядного двоичного кода в 16-ричную систему:

1011 1100 0001 0110 1011 1111 0010 1010 BC16BF2A

Если дано шестнадцатеричное представление внутренней информации, то его легко перевести в двоичный код. Преимущество шестнадцатеричного представления состоит в том, что оно в 4 раза короче двоичного . Желательно, чтобы ученики запомнили двоично-шестнадцатеричную таблицу. Тогда действительно для них шестнадцатеричное представление станет эквивалентным двоичному.

В двоично-восьмеричной системе каждой восьмеричной цифре соответствует триада двоичных цифр. Эта система позволяет сократить двоичный код в 3 раза.