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

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

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

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

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

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

История

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

Определения

Позиционная система счисления определяется целым числом 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 ;}

Система счисления - это способ записи чисел. Обычно, числа записываются с помощью специальных знаков - цифр (хотя и не всегда). Если вы никогда не изучали данный вопрос, то, по крайней мере, вам должны быть известны две системы счисления - это арабская и римская. В первой используются цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и это позиционная система счисления. А во второй - I, V, X, L, C, D, M и это непозиционная система счисления.

В позиционных системах счисления количество, обозначаемое цифрой в числе, зависит от ее позиции, а в непозиционных - нет. Например:

11 - здесь первая единица обозначает десять, а вторая - 1.
II - здесь обе единицы обозначают единицу.

345, 259, 521 - здесь цифра 5 в первом случае обозначает 5, во втором - 50, а в третьем - 500.

XXV, XVI, VII - здесь, где бы ни стояла цифра V, она везде обозначает пять единиц. Другими словами, величина, обозначаемая знаком V, не зависит от его позиции.

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

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

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

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

Разряд - это позиция цифры в числе. Разрядность числа - количество цифр, из которых состоит число (например, 264 - трехразрядное число, 00010101 - восьмиразрядное число). Разряды нумеруются справа на лево (например, в числе 598 восьмерка занимает первый разряд, а пятерка - третий).

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

Одно и тоже число (значение) можно представить в различных системах счисления. Представление числа при этом различно, а значение остается неизменным.

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

В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)

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

В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд - сотни.

Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.

Попробуем считать в двоичной системе:
0 - это ноль
1 - это один (и это предел разряда)
10 - это два
11 - это три (и это снова предел)
100 - это четыре
101 - пять
110 - шесть
111 - семь и т.д.
Перевод чисел из двоичной системы счисления в десятичную

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

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

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 103 + 4 * 102 + 7 * 101 + 6 * 100

Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять - это основание десятичной системы счисления. Степень, в которую возводится десятка - это разряд цифры за минусом единицы.

Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:

10001001 2 = 13710
Почему двоичная система счисления так распространена?

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

Может потребоваться перевести десятичное число в двоичное. Один из способов - это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись:

77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)

Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77

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

Итак, современное «железо понимает» лишь двоичную систему счисления. Однако человеку трудно воспринимать длинные записи нулей и единиц с одной стороны, а с другой - переводит числа из двоичной в десятичную систему и обратно, достаточно долго и трудоемко. В результате, часто программисты используют другие системы счисления: восьмеричную и шестнадцатеричную. И 8 и 16 являются степенями двойки, и преобразовывать двоичное число в них (так же как и выполнять обратную операцию) очень легко.

В восьмеричной системе счисления используется восемь знаков-цифр (от 0 до 7). Каждой цифре соответствуют набор из трех цифр в двоичной системе счисления:

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

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

1011101 = 1 011 101 = 001 011 101 = 1 3 5 = 135

Т.е число 1011101 в двоичной системе счисления равно числу 135 в восьмеричной системе счисления. Или 1011101 2 = 1358.

Обратный перевод. Допустим, требуется перевести число 1008 (не заблуждайтесь! 100 в восьмеричной системе - это не 100 в десятичной) в двоичную систему счисления.

100 8 = 1 0 0 = 001 000 000 = 001000000 = 10000002

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

6728 = 6 * 8 2 + 7 * 8 1 + 2 * 8 0 = 6 * 64 + 56 + 2 = 384 + 56 + 2 = 44210
1008 = 1 * 8 2 + 0 * 8 1 + 0 * 8 0 = 6410

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

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

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

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

Например:
10001100101 = 0100 1100 0101 = 4 C 5 = 4C5

Если потребуется, то число 4C5 можно перевести в десятичную систему счисления следующим образом (C следует заменить на соответствующее данному символу число в десятичной системе счисления - это 12):

4C5 = 4 * 162 + 12 * 161 + 5 * 160 = 4 * 256 + 192 + 5 = 1221

Максимальное двухразрядное число, которое можно получить с помощью шестнадцатеричной записи - это FF.

FF = 15 * 161 + 15 * 160 = 240 + 15 = 255

255 - это максимальное значение одного байта, равного 8 битам: 1111 1111 = FF. Поэтому с помощью шестнадцатеричной системы счисления очень удобно кратко (с помощью двух цифр-знаков) записывать значения байтов. Внимание! Состояний у 8-ми битного байта может быть 256, однако максимальное значение - 255. Не забывайте про 0 - это как раз 256-е состояние

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

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

Различают два типа систем счисления:

позиционные, когда значение каждой цифры числа определяется ее позицией в записи числа;

непозиционные, когда значение цифры в числе не зависит от ее места в записи числа.

Примером непозиционной системы счисления является римская: числа IX, IV, XV и т.д. Примером позиционной системы счисления является десятичная система, используемая повседневно.

Любое целое число в позиционной системе можно записать в форме многочлена:

где S - основание системы счисления;

Цифры числа, записанного в данной системе счисления;

n - количество разрядов числа.

Пример. Число запишется в форме многочлена следующим образом:

Виды систем счисления

Римская система счисления является непозиционной системой. В ней для записи чисел используются буквы латинского алфавита. При этом буква I всегда означает единицу, буква - V пять, X - десять, L - пятьдесят, C - сто, D - пятьсот, M - тысячу и т.д. Например, число 264 записывается в виде CCLXIV. При записи чисел в римской системе счисления значением числа является алгебраическая сумма цифр, в него входящих. При этом цифры в записи числа следуют, как правило, в порядке убывания их значений, и не разрешается записывать рядом более трех одинаковых цифр. В том случае, когда за цифрой с большим значением следует цифра с меньшим, ее вклад в значение числа в целом является отрицательным. Типичные примеры, иллюстрирующие общие правила записи чисел в римской система счисления, приведены в таблице.

Таблица 2. Запись чисел в римской системе счисления

III

VII

VIII

XIII

XVIII

XIX

XXII

XXXIV

XXXIX

XCIX

200

438

649

999

1207

CDXXXVIII

DCXLIX

CMXCIX

MCCVII

2045

3555

3678

3900

3999

MMXLV

MMMDLV

MMMDCLXXVIII

MMMCM

MMMCMXCIX

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

Десятичня система счисления – в настоящее время наиболее известная и используемая. Изобретение десятичной системы счисления относится к главным достижениям человеческой мысли. Без нее вряд ли могла существовать, а тем более возникнуть современная техника. Причина, по которой десятичная система счисления стала общепринятой, вовсе не математическая. Люди привыкли считать в десятичной системе счисления, потому что у них по 10 пальцев на руках.

Древнее изображение десятичных цифр (рис. 1) не случайно: каждая цифра обозначает число по количеству углов в ней. Например, 0 - углов нет, 1 - один угол, 2 - два угла и т.д. Написание десятичных цифр претерпело существенные изменения. Форма, которой мы пользуемся, установилась в XVI веке.

Десятичная система впервые появилась в Индии примерно в VI веке новой эры. Индийская нумерация использовала девять числовых символов и нуль для обозначения пустой позиции. В ранних индийских рукописях, дошедших до нас, числа записывались в обратном порядке - наиболее значимая цифра ставилась справа. Но вскоре стало правилом располагать такую цифру с левой стороны. Особое значение придавалось нулевому символу, который вводился для позиционной системы обозначений. Индийская нумерация, включая нуль, дошла и до нашего времени. В Европе индусские приёмы десятичной арифметики получили распространение в начале ХIII в. благодаря работам итальянского математика Леонардо Пизанского (Фибоначчи). Европейцы заимствовали индийскую систему счисления у арабов, назвав ее арабской. Это исторически неправильное название удерживается и поныне.

Десятичная система использует десять цифр – 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9, а также символы “+” и “–” для обозначения знака числа и запятую или точку для разделения целой и дробной частей числа.

В вычислительных машинах используется двоичная система счисления, её основание - число 2. Для записи чисел в этой системе используют только две цифры - 0 и 1. Вопреки распространенному заблуждению, двоичная система счисления была придумана не инженерами-конструкторами ЭВМ, а математиками и философами задолго до появления компьютеров, еще в ХVII - ХIХ веках. Первое опубликованное обсуждение двоичной системы счисления принадлежит испанскому священнику Хуану Карамюэлю Лобковицу (1670 г.). Всеобщее внимание к этой системе привлекла статья немецкого математика Готфрида Вильгельма Лейбница, опубликованная в 1703 г. В ней пояснялись двоичные операции сложения, вычитания, умножения и деления. Лейбниц не рекомендовал использовать эту систему для практических вычислений, но подчёркивал её важность для теоретических исследований. Со временем двоичная система счисления становится хорошо известной и получает развитие.

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

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

Двоичная система удобна для компьютера, но неудобна для человека: числа получаются длинными и их трудно записывать и запоминать. Конечно, можно перевести число в десятичную систему и записывать в таком виде, а потом, когда понадобится перевести обратно, но все эти переводы трудоёмки. Поэтому применяются системы счисления, родственные двоичной - восьмеричная и шестнадцатеричная. Для записи чисел в этих системах требуется соответственно 8 и 16 цифр. В 16-теричной первые 10 цифр общие, а дальше используют заглавные латинские буквы. Шестнадцатеричная цифра A соответствует десятеричному числу 10, шестнадцатеричная B – десятичному числу 11 и т. д. Использование этих систем объясняется тем, что переход к записи числа в любой из этих систем от его двоичной записи очень прост. Ниже приведена таблица соответствия чисел, записанных в разных системах.

Таблица 3. Соответствие чисел, записанных в различных системах счисления

Десятичная

Двоичная

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

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

001

010

011

100

101

110

111

1000

1001

1010

1011

1100

1101

D http://viagrasstore.net/generic-viagra-soft/

1110

1111

10000

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

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

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

При переводе удобно пользоваться таблицей степеней двойки:

Таблица 4. Степени числа 2

n (степень)

1024

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

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

При переводе удобно пользоваться таблицей степеней восьмерки:

Таблица 5. Степени числа 8

n (степень)

В двоичной системе счисления используются всего две цифры 0 и 1. Другими словами, двойка является основанием двоичной системы счисления. (Аналогично у десятичной системы основание 10.)

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

В десятичной системе счисления мы располагаем десятью знаками-цифрами (от 0 до 9). Когда счет достигает 9, то вводится новый разряд (десятки), а единицы обнуляются и счет начинается снова. После 19 разряд десятков увеличивается на 1, а единицы снова обнуляются. И так далее. Когда десятки доходят до 9, то потом появляется третий разряд – сотни.

Двоичная система счисления аналогична десятичной за исключением того, что в формировании числа участвуют всего лишь две знака-цифры: 0 и 1. Как только разряд достигает своего предела (т.е. единицы), появляется новый разряд, а старый обнуляется.

Попробуем считать в двоичной системе:
0 – это ноль
1 – это один (и это предел разряда)
10 – это два
11 – это три (и это снова предел)
100 – это четыре
101 – пять
110 – шесть
111 – семь и т.д.

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

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

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

1476 = 1000 + 400 + 70 + 6

1476 = 1 * 10 3 + 4 * 10 2 + 7 * 10 1 + 6 * 10 0

Посмотрите на эту запись внимательно. Здесь цифры 1, 4, 7 и 6 - это набор цифр из которых состоит число 1476. Все эти цифры поочередно умножаются на десять возведенную в ту или иную степень. Десять – это основание десятичной системы счисления. Степень, в которую возводится десятка – это разряд цифры за минусом единицы.

Аналогично можно разложить и любое двоичное число. Только основание здесь будет 2:

10001001 = 1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0

1*2 7 + 0*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 128 + 0 + 0 + 0 + 8 + 0 + 0 + 1 = 137

Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:

10001001 2 = 137 10

Почему двоичная система счисления так распространена?

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

Перевод десятичного числа в двоичное

Может потребоваться перевести десятичное число в двоичное. Один из способов – это деление на два и формирование двоичного числа из остатков. Например, нужно получить из числа 77 его двоичную запись:

77 / 2 = 38 (1 остаток)
38 / 2 = 19 (0 остаток)
19 / 2 = 9 (1 остаток)
9 / 2 = 4 (1 остаток)
4 / 2 = 2 (0 остаток)
2 / 2 = 1 (0 остаток)
1 / 2 = 0 (1 остаток)

Собираем остатки вместе, начиная с конца: 1001101. Это и есть число 77 в двоичном представлении. Проверим:

1001101 = 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 1*2 2 + 0*2 1 + 1*2 0 = 64 + 0 + 0 + 8 + 4 + 0 + 1 = 77