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

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

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

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

Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена

x = anPn + an-1Pn-1 + ... + a1P1 + a0P0 + a-1P-1 + ... + a-mP-m

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

При переводе чисел из десятичной системы счисления в систему с основанием P > 1 обычно используют следующий алгоритм:

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

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

Кодирование чисел

Чтобы использовать числа, нужно их как-то называть и записывать, нужна система нумерации. Различные системы счёта и записи чисел тысячелетиями сосуществовали и соревновались между собой, но к концу "докомпьютерной эпохи" особую роль при счёте стало играть число "десять", а самой популярной системой кодирования оказалась позиционная десятичная система. В этой системе значение цифры в числе зависит от её места (позиции) внутри числа. Десятичная система счисления пришла из Индии (не позднее VI века нашей эры). Алфавит этой системы: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} — всего 10 цифр, таким образом основание системы счисления — 10. Число записывается как комбинация единиц, десятков, сотен, тысяч и так далее. Пример: 1998=8*100 + 9*101 + 9*102 + 1*103.

В этой системе 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, но информацию несет не только цифра, но и место, на котором цифра стоит (то есть ее позиция). Самая правая цифра числа показывает число единиц, вторая справа - число десятков, следующая - число сотен и т.д. 

Пример:

33310 = 3*100 + 3*10+3*1 = 300 + 30 + 3

Заметим, что выбор числа 10 в качестве основания системы счисления объясняется традицией, а не какими-то замечательными свойствами числа 10. Вообще, представление числа N в р-ричной системе счисления, это:

N=an*pn+an-l*pn-l+...+al*pl+ao, где а 0, аi {0, 1, 2, ..., аi}.

В Вавилоне, например, использовалась 60-ричная система счисления, алфавит содержал цифры от 1 до 59, числа 0 не было, таблицы умножения были очень громоздкими, поэтому очень скоро она была забыта, но отголоски её былой распространённости можно наблюдать и сейчас — деление часа на 60 минут, деление круга на 360 градусов.

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

Двоичная система счисления была придумана математиками и философами ещё до появления компьютеров (XVII — XIX вв.). Выдающийся математик Лейбниц говорил: "Вычисление с помощью двоек... является для науки основным и порождает новые открытия... При сведении чисел к простейшим началам, каковы 0 и 1, везде появляется чудесный порядок". Позже двоичная система была забыта, и только в 1936 — 1938 годах американский инженер и математик Клод Шеннон нашёл замечательные применения двоичной системы при конструировании электронных схем. Рассмотрим пример представления числа в двоичной системе счисления:

Пример 2.1.1. Переведём число 2000 в двоичную систему.

1. Делим 2000 на основание новой системы счисления — 2:

2000:2=1000(0 - остаток), 

1000:2=500(0),

500:2=250(0),

250:2=125(0),

125:2=62(1),

62:2=31(0),

31:2=15(1),

15:2=7(1),

7:2=3(1),

3:2=1(1)

2. Собираем последнее частное от деления (всегда равно 1) и остатки от деления и записываем их по порядку, начиная снизу :

200010==111110100002

Для проверки переведём полученное число в десятичную систему счисления, для этого:

1. Выделим двоичные разряды числа, то есть, степени числа 2, начиная с 0-й:

1

1

1

1

1

0

1

0

0

0

0

210

29

28

27

26

25

24

23

22

2'

2°

2. Запишем сумму произведений 0 и 1 на соответствующую степень числа 2 (см. представление числа в р-ричной системе счисления):

0*20+0*21+0*22+0*23+l*24+0*25+l*26+l*27+l*28+l*29+l*210= 16+64+128+256+512+1024=2000

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

Например, в шестнадцатеричной системе для записи чисел предназначены 10 арабских цифр и буквы латинского алфавита {А, В, С, D, Е, F}. Чтобы записать число в этой системе счисления, удобно воспользоваться двоичным представлением числа. Возьмём для примера то же число — 2000 или 11111010000 в двоичной системе. Разобьём его на четвёрки знаков, двигаясь справа налево, в последней четвёрке слева припишем незначащий 0, чтобы количество знаков в триадах было по четыре: 0111 1101 0000. Начнём перевод — числу 0111 в двоичной системе соответствует число 7 в десятичной (710=1*20+1*21+1*22), в шестнадцатеричной системе счисления цифра 7 есть; числу 1101 в двоичной системе соответствует число 13 в десятичной (13=1*20 + 0*21 + 1*22 + 1*23), в шестнадцатеричной системе этому числу соответствует цифра D, и, наконец, число 0000 — в любой системе счисления 0. Запишем теперь результат:

111110100002 = 7D016.

ДВЕНАДЦАТИРИЧНАЯ И ВОСЬМЕРИЧНАЯ СИСТЕМЫ СЧИСЛЕНИЯ

Хотя десятичная система счисления является наиболее широко применимой, это отнюдь не означает, что она самая лучшая. Широкое распространение во многом объясняется тем анатомическим обстоятельством, что у нас на руках и ногах по десять пальцев. Что же касается позиционного принципа и цифровых обозначений, то они с равным успехом могут быть приспособлены к системе счисления с любым основанием, независимо от того, равно ли оно 2, 10 или какому-нибудь другому целому положительному числу, кроме единицы. Например, подставив в полиномиальное представление 7x 2 + 6x 1 + 5x 0 + 4x –1 + 3x –2 вместо x значение 10, мы получим число 765,43 в нашей обычной десятичной системе. Но без малейшего ущерба для позиционного принципа обозначения целых чисел и дробей вместо x можно подставить и любое другое целое положительное число. Вместо числа 10 в качестве основания системы счисления чаще других предлагалось использовать числа 8 и 12. Системы, получающиеся при таких заменах, известны под названием восьмеричной и двенадцатеричной. В восьмеричной системе вместо переменной x в полиномиальном представлении следует подставить 8, и тогда число, равное в десятичной системе 765,43, в восьмеричной системе окажется равным (8 2) + 6(8 1) + 5(8 0) + 4(8 –1) + 3(8 –2), т.е. числу. В двенадцатеричной системе то же самое полиномиальное представление при x = 12 дает (12 2) + 6(12 1) + 5(12 0) + 4(12 –1) + 3(12 –2), или в наших обычных обозначениях. Что касается вычислений, то они во всех трех системах счисления, десятичной, восьмеричной и двенадцатиричной, производятся практически одинаково и с одной и той же легкостью. Различие в основном заключается в таблицах сложения и умножения, поскольку они изменяются от одной системы счисления к другой. Например, сумма семь плюс семь равна сумме восемь плюс шесть в восьмеричной системе, десять плюс четыре – в десятичной и двенадцать плюс два – в двенадцатиричной. Символически эти суммы и произведения можно записать следующим образом: 

Мы видим, что переход от десятичной системы к восьмеричной или двенадцатиричной действительно требует полного пересмотра таблиц сложения и умножения; это объясняет, почему предложения о переходе к этим системам счисления не получили широкого признания. Преимущества, которые сулит этот переход, сводятся на нет сопряженными с ним трудностями. Главные преимущества восьмеричной и двенадцатиричной систем счисления связаны с делимостью их оснований. Рассматривая только целые числа, меньшие половины основания (поскольку ни одно число не может быть делителем основания, если это число больше половины основания, но меньше его), нетрудно понять, что число 10 имеет два неделителя – числа 3 и 4, тогда как в восьмеричной системе единственный неделитель, меньший половины основания, есть число 3, а в двенадцатиричной системе единственный неделитель основания равен числу 5. Иначе говоря, преимущество числа 12 как основания системы счисления заключается в том, что оно имеет делителями числа 2, 3, 4 и 6, тогда как число 10 имеет делителями числа 2 и 5. Число 8 имеет делителями только числа 2 и 4, однако его основное преимущество перед другими в том, что непрерывное деление пополам неизменно приводит к «одноместному» дробному представлению в полиномиальной форме. Например, если 8 разделить на 210, то результат окажется в точности равным (0,004)8, тогда как если 12 разделить на 210, то получится (приближенно) (0,0183)12, а при делении на 210 числа 10 результат (также приближенный) будет равным (0,0097656)10. 

В метрологии большое значение имеет факторизуемость (разложимость на множители) числа, вот почему 8 и 12 играют столь заметную роль в неметрических системах весов и мер. На американских фондовых биржах дроби обычно выражают в восьмых долях, а время делится на 12 и существенно использует деление единиц на 60 частей. Особая роль числа 60 в наших измерениях времени и углов связана с тем, что около четырех тысяч лет назад древние вавилоняне осознали, что число 60 имеет много делителей, и выбрали его не только за основу своих весов и мер, но и своей системы счисления. Позиционный принцип вошел в обиход в связи с шестидесятиричной, а не десятичной системой. Но основание 60 обладает одним серьезным недостатком: оно слишком велико для того, чтобы его можно было использовать в современной цифровой полиномиальной форме, т.к. для этого потребовалось бы 60 различных символов, которые обозначали бы первые шестьдесят неотрицательных целых чисел. Кроме того, таблицы сложения и умножения включали бы числа от 1 до 59, что потребовало бы чрезмерно большой нагрузки на память. Этим же недостатком обладает и любое другое основание большее 12, поэтому двенадцатиричная система является наибольшим практически возможным основанием. Сама двенадцатиричная система требует введения двух новых цифр – для обозначения чисел 10 и 11. Для этой цели были предложены буквы t и e. Преимущество двоичной системы в том, что для нее необходимо всего лишь две цифры, но она располагается на другом конце шкалы относительно шестидесятиричной системы, для большинства практических целей основание ее слишком мало и поэтому число знаков при записи чисел в двоичной системе оказывается слишком большим. (См. предыдущий раздел.) Числа 8, 10 и 12 очень близки к оптимальной величине основания системы счисления, и вычисления в восьмеричной, десятичной и двенадцатиричной системах выполняются сравнительно легко. 

Аргументы в пользу двенадцатиричной системы счисления не следует путать с аргументами в защиту двенадцатиричной монетарной и метрологической систем. Уже вавилоняне прекрасно понимали желательность согласованности системы счисления и метрологической системы. Однако продолжительное использование десятичной системы вместе с двенадцатиричными и шестидесятидесятиричными единицами измерения затушевало проблему их несогласованности. Более того, возникла тенденция преувеличивать те трудности, которые могла бы породить любая попытка их унифицировать. Внутренняя согласованность, по-видимому, играет более важную роль, чем любой выбор единого основания систем, будь то 8, 10 или 12. Во времена Великой французской революции, на заседаниях Революционной комиссии по весам и мерам, высказывались мнения о введения двенадцатиричных систем мер и весов, но окончательное решение склонилось в пользу унификации мер и весов на основе десятичной системы счисления. Результатом такого решения стала метрическая система, получившая ныне почти всеобщее признание.

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

Следует иметь в виду, что трудности перехода от одной системы счисления к другой не имеют никакого отношения к преимуществам или недостаткам выполнения арифметических операций целиком в рамках одной системы, будь то восьмеричная, десятичная или двенадцатиричная система. Десятичная система не может не признать небольших преимуществ двух других систем: восьмеричная система имеет меньшие по объему таблицы сложения и умножения и особенно хорошо приспособлена к делению на 2, а двенадцатиричная удобнее для выполнения операции деления и представления простых дробей. Достаточны ли эти преимущества для того, чтобы настаивать на придании универсального характера той или иной системе счисления, – вопрос достаточно спорный, однако основанное в 1944 Двенадцатиричное общество Америки стало центром, объединяющим активную деятельность тех, кто хотел бы, чтобы число 12 играло столь же важную роль, какую во многих цивилизациях на протяжении прошлых полдюжины тысячелетий играло число 10. 

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


 При внешнем (вне ЭВМ) представлении числовой информации применять двоичную систему счисления с ее громоздкими записями неудобно. В этом случае часто используется восьмеричная система. 
В восьмеричной системе числа записываются с помощью восьми цифр: 0,1,2,3,4,5,6,7, а сама восьмерка числом 10.Удобство восьмеричной системы счисления заключается в том, что переход от восьмеричной к двоичной очень прост: достаточно каждую восьмеричную цифру заменить ее двоичным представлением (двоичной триадой)в соответствии с приведенной ниже таблицей. 

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



1

2

3

4

5

6

7

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

000

001

010

011

100

101

110

111

Например, 5028 = 101 000 0102 
Достаточно прост и обратный переход от двоичной с/с к восьмеричной. Для этого в двоичной записи числа нужно выделить триады (влево и вправо от десятичной точки) и заменить каждую триаду соответствующей восьмеричной цифрой. В случае необходимости неполные триады дополняются нулями. 
Например, 1 111 1102 = 001 111 1102 = 1768

Восьмери́чная систе́ма счисле́ния — позиционная целочисленная система счисления с основанием 8. Для представления чисел в ней используются цифры 0 до 7.

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

Одними из самых первых персональных компьютеров таких фирм, как Apple II, Commodore 64, TRS-80, Motorola и IBM использовали 8 - битные микропроцессоры, которые могли обрабатывать по восемь битов информации за один такт. Для обработки более 8 битов они выполняли дополнительные операции. 

Битом называют отдельную цифру в двоичной системе исчисления, тетрадой – группу из 4 бит. Группа из 8 битов, называемая байт, вошла в «плоть и кровь» логической архитектуры процессоров всех последующих поколений микропроцессоров (в том числе 16, 32 и 64 разрядных). Байт может представлять диапазон десятичных значений от 010 (000000002) до 25510 (111111112). Де факто байт стали представлять основной единицей обработки количества информации. 

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