О системах счисления


Основные понятия и определения

Система счисления — символический метод записи чисел, представление чисел с помощью письменных знаков (англ. system of numeration, numeral system).
Систему счисления также можно определить как совокупность приемов обозначения (записи) чисел.
Число — абстрактная мера количества, используемая для количественной характеристики и нумерацииобъектов (от лат. abstractio — отвлечение). Абстракция является одним из методов математики и представляет собой отвлечение от несуществественных свойств объекта, с целью выделения значимых. Так, например, линии геометрических фигур не имеют толщины, хотя фактически это не так, мы «отвлекаемся», поскольку для построений, доказательств и расчетов это свойство не является существенным.
Понятие числа является фундаментальным как в математике, так и в информатике (фундаментальными называют понятия, лежащие в основе, все прочие понятия базируются на них, определяются через них, в качестве примера можно привести время, пространство, материю в физике).
Нумерация (лат. numeratio, от numero — считаю) — числовое упорядочение объектов, облегчающее обращение к ним (нумерация домов, маршрутов транспорта и т.д.). Нумерация объектов производится по общепринятым правилам (например дома с четными и нечетными номерами расположены по разным сторонам улицы), однако в любом городе можно, например, встретить дома с нумерацией подъездов справа налево, в Германии этажи нумеруются не с первого, а с «Erdgeschoss» (этаж на земле, E, EG), а цифре 1 в лифте соответствует второй...
Словесная нумерация предполагает обозначение чисел словами (один, два, три, в кириллице иже (это восемь), ферт (пятьсот), тьма (десять тысяч), centum (сто в римской системе)), письменная нумерация — цифрами, символами.
Любое число можно записать множеством различных способов. Например «восемь», «8», «VIII» (римская система), «oct» (лат.), «eight» (англ.), «1000» (двоичная система), «| | | | | | | |» (единичная система).

Для записи числа могут использоваться любые знаки, например:

Или такое старинное русское обозначение (использовалось сборщиками податей):

Обратите внимание, что десятки (десять копеек) обозначаются крестом, а единицы (копейки) — вертикальной палочкой, число 13 таким образом будет записано «XIII» — аналогично римской записи.
Алфавит системы счисления — упорядоченное множество символов для записи чисел. Так, алфавитом привычной нам десятичной системы является набор цифр 0-9. Алфавитом римской системы будут цифры: I(один), V(пять), X(десять), L(пятьдесят), С(сто), D(пятьсот), М(тысяча).
К слову о римской системе, римские цифры часто забываются (поскольку мы используем их редко), однако существуют мнемонические правила их запоминания в обратной последовательности, по убыванию. Выучив одно из таких правил, можно запомнить их раз и навсегда:

Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам

Соответственно M (1000), D (500), C (100), L (50), X (10), V (5), I (1)
Цифры — это знаки (символы), используемые для записи чисел (арабские цифры, римские цифры).
Также для записи чисел использовались йероглифические символы (египетская система, китайская и основанные на ней прочие восточноазиатские), клинопись (вавилонская система).
Числа могут быть записаны также буквенными обозначениями (греческая система, кириллица, глаголица, армянская система, эфиопская).
Алфавитная запись чисел (алфавитная система счисления) — система, в которой буквам алфавита сопоставляются числовые значения. Поскольку число букв алфавита любого языка невелико, числа выражаются суммой значений, представляемых комбинацией букв.
Для того, чтоб различить буквы и цифры, а также для записи больших чисел (тысячи и более) используются диакритические знаки (подстрочные и надстрочные символы, применяемые для изменения значения других).
В кириллице такой знак называется «ти́тло» (устар. «ти́тла», выглядит как волнистая черта над символом буквы, буква с титлом это уже цифра). Также использовалься отдельный знак для указания тысяч, примеры записи чисел кириллицей можно видеть на картинке ниже, также приведены первые десять цифр, десятки и сотни обозначались другими буквами.

Системы, в которых число определялется лишь суммой всех входящих в запись чисел, независимо от их места и порядка, называются аддитивными (лат. additio — прибавление, добавление). Пример — рассмотренные римская, кириллическая системы.
Код числа — запись числа в некоторой системе счисления.
Существует множество версий появления различных систем счисления, часто говорят о системах счисления анатомического происхождения, то есть их появление связано со строением человеческого тела. К ним можно отнести единичную (число определяется количеством одинаковых значков, палочек, зарубок — также используются пальцы рук), пятеричную (по числу пальцев на одной руке, использовалась в странах Африки, в Китае), десятичную (по числу пальцев на двух руках), двенадцатеричную (по числу фаланг на четырех пальцах, большой палец не использовался), двадцатеричную (по числу пальцев на руках и ногах), иногда к анатомическим относят и восьмеричную — один из вариантов происхождения счет не по пальцам, а по промежуткам между ними, их восемь.
Почему необходимо знать о системах счисления, понимать принципы образования чисел в них, применять правила перевода из одной системы в другую, производить операции с числами?
Изучение различных систем счисления необходимо для понимания принципов формирования и записи чисел (напомним, что понятие числа является фундаментальным!), функционирования ряда логических элементов цифровых микросхем в приложениях электроники и процессов обработки информации в вычислительных машинах.
Используемые системы счисления можно разделить на три категории:
·         — позиционные системы счисления
·         — непозиционные системы счисления
·         — смешанные системы счисления
Наиболее сильное влияние на развитие вычислительной техники и материальной культуры в целом оказал именно позиционный (поместный) метод счисления, поэтому в первую очередь предлагается рассмотреть позиционные системы и их основные характеристики, такие как основание, базис позиционной системы, разряд, порядок, вес числа, значащие цифры и т.д.


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


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

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

где A(D) - запись числа A в СС D;
Di - символ системы, образующие базу.
По этому принципу построены непозиционные СС.
В общем же случае системы счисления: A(B)=a1B1+a2B2 +...+anBn. Если положить, что Bi=q*Bi-1, а B1=1, то получим позиционную СС. При q=10 мы имеем дело с привычной нам десятичной СС.
На практике также используют другие СС:



q
Название
Цифры
2
двоичная
0,1
3
троичная
0,1,2
8
восьмеричная
0,...,7
16
шестнадцатиричная
0,...,9,A, ...,F

Каждая СС имеет свои правила арифметики (таблица умножения, сложения). Поэтому, производя какие-либо операции над числами, надо помнить о СС, в которой они представлены.
Если основание системы q превышает 10, то цифры, начиная с 10, при записи обозначают прописными буквами латинского: A,B,...,Z. При этом цифре 10 соответствуею знак 'A', цифре 11 - знак 'B' и т.д. В таблице ниже приводятся десятичные числа от 0 до 15 и их эквивалент в различных СС:



q=10
q=2
q=16
0
0
0
1
1
1
2
10
2
3
11
3
4
100
4
5
101
5
6
110
6
7
111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F

В позиционной СС число можно представить через его цифры с помощью следующего многочлена относительно q:
A=a1*q0+a2*q1+...+an*qn (1)
Выражение (1) формулирует правило для вычисления числа по его цифрам в q-ичной СС. Для уменьшения количества вычислений пользуются т.н. схемой Горнера. Она получается поочередным выносом q за скобки:
A=(...((an*q+an-1)*q+an-2)*q+...)*q+a1
результат вычисления многочлена будет всегда получен в той системе счисления, в которой будут представлены цифры и основание и по правилам которой будут выполнены операции.

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



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

Результатом является целое число.
1. Из десятичной системы счисления - в двоичную и шестнадцатеричную: 

a.     исходное целое число делится на основание системы счисления, в которую переводится (2 или 16); получается частное и остаток;
b.     если полученное частное не делится на основание системы счисления так, чтобы образовалась целая часть, отличная от нуля, процесс умножения прекращается, переходят к шагу в). Иначе над частным выполняют действия, описанные в шаге а);
c.      все полученные остатки и последнее частное преобразуются в соответствии с таблицей в цифры той системы счисления, в которую выполняется перевод;
d.     формируется результирующее число: его старший разряд - полученное последнее частное, каждый последующий младший разряд образуется из полученных остатков от деления, начиная с последнего и кончая первым. Таким образом, младший разряд полученного числа - первый остаток от деления, а старший - последнее частное.


Пример 3.1. Выполнить перевод числа 19 в двоичную систему счисления:

Пример 3.2. Выполнить перевод числа 19 в шестнадцатеричную систему счисления: 
Пример 3.3. Выполнить перевод числа 123 в шестнадцатеричную систему счисления:
2. Из двоичной и шестнадцатеричной систем счисления - в десятичную. В этом случае рассчитывается полное значение числа по формуле.

Пример 3.4. Выполнить перевод числа 1316 в десятичную систему счисления. Имеем:
1316 = 1*161 + 3*160 = 16 + 3 = 19.
Таким образом, 1316 = 19.

Пример 3.5. Выполнить перевод числа 100112 в десятичную систему счисления. Имеем:
100112 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16+0+0+2+1 = 19.
Таким образом, 100112 = 19.


3. Из двоичной системы счисления в шестнадцатеричную: 

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


Пример 3.6. Выполнить перевод числа 100112 в шестнадцатеричную систему счисления. 
Поскольку в исходном двоичном числе количество цифр не кратно 4, дополняем его слева незначащими нулями до достижения кратности 4 числа цифр. Имеем:

В соответствии с таблицей 00112 = 112 = 316 и 00012 = 12 = 116. 
Тогда 100112 = 1316.


4. Из шестнадцатеричной системы счисления в двоичную: 

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


Пример 3.7. Выполнить перевод числа 1316 в двоичную систему счисления. 
По таблице имеем: 116 = 12 и после дополнения незначащими нулями 12 = 00012; 316 = 112 и после дополнения незначащими нулями 112 = 00112. Тогда 1316 = 000100112. После удаления незначащих нулей имеем 1316 = 100112.



Правила перевода правильных дробей

Результатом является всегда правильная дробь.
1. Из десятичной системы счисления - в двоичную и шестнадцатеричную: 


a.     исходная дробь умножается на основание системы счисления, в которую переводится (2 или 16);
b.     в полученном произведении целая часть преобразуется в соответствии с таблицей в цифру нужной системы счисления и отбрасывается - она является старшей цифрой получаемой дроби;
c.      оставшаяся дробная часть вновь умножается на нужное основание системы счисления с последующей обработкой полученного произведения в соответствии с шагами а) и б).
d.     процедура умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или ни будет достигнуто требуемое количество цифр в результате;
e.      формируется результат: последовательно отброшенные в шаге б) цифры составляют дробную часть результата, причем в порядке уменьшения старшинства.

Пример 3.8. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.
Имеем:
В данном примере процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.
Таким образом, 0,847 = 0,11012.

Пример 3.9. Выполнить перевод числа 0,847 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.
В данном примере также процедура перевода прервана. Таким образом, 0,847 = 0,D8D2.


2. Из двоичной и шестнадцатеричной систем счисления - в десятичную. В этом случае рассчитывается полное значение числа по формуле, причем коэффициенты aiпринимают десятичное значение в соответствии с таблицей.

Пример 3.10. Выполнить перевод из двоичной системы счисления в десятичную числа 0,11012. Имеем:
0,11012 = 1*2-1 + 1*2-2 + 0*2-3 +1*2-4 = 0,5 + 0,25 + 0 + 0,0625 = 0,8125.
Расхождение полученного результата с исходным для получения двоичной дроби числом вызвано тем, что процедура перевода в двоичную дробь была прервана.
Таким образом, 0,11012 = 0,8125.

Пример 3.11. Выполнить перевод из шестнадцатеричной системы счисления в десятичную числа 0,D8D16. Имеем:
0,D8D16 = 13*16-1 + 8*16-2 + 13*16-3 = 13*0,0625 + 8*0,003906 + 13* 0,000244 = 0,84692.
Расхождение полученного результата с исходным для получения двоичной дроби числом вызвано тем, что процедура перевода в шестнадцатеричную дробь была прервана.
Таким образом, 0,D8D16 = 0,84692.


3. Из двоичной системы счисления в шестнадцатеричную: 


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

Пример 3.12. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,11012. Имеем:
0,11012 = 0,11012 В соответствии с таблицей 11012 = D16. Тогда имеем 0,11012 = 0,D16.

Пример 3.13. Выполнить перевод из двоичной системы счисления в шестнадцатеричную числа 0,00101012.
Поскольку количество цифр дробной части не кратно 4, добавим справа незначащий ноль: 0,00101012 = 0,001010102. В соответствии с таблицей 00102 = 102 = 216 и 10102 = A16. Тогда имеем 0,00101012 = 0,2A16.

4. Из шестнадцатеричной системы счисления в двоичную:

a.     каждая цифра исходной дроби заменяется тетрадой двоичных цифр в соответствии с таблицей;
b.     незначащие нули отбрасываются.

Пример 3.14. Выполнить перевод из шестнадцатеричной системы счисления в двоичную числа 0,2А16.
По таблице имеем 216 = 00102 и А16 = 10102. Тогда 0,2А16 = 0,001010102.
Отбросим в результате незначащий ноль и получим окончательный результат: 0,2А16 = 0,00101012.



Правило перевода дробных чисел

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

Пример 3.15. Выполнить перевод из десятичной системы счисления в шестнадцатеричную числа 19,847. Перевод выполнять до трех значащих цифр после запятой.
Представим исходное число как сумму целого числа и правильной дроби:
19,847 = 19 + 0,847.
Как следует из примера 3.2, 19 = 1316; а в соответствии с примером 3.9 0,847 = 0,D8D16. Тогда имеем:
19 + 0,847 = 1316 + 0,D8D16 = 13,D8D16.
Таким образом, 19,847 = 13,D8D16.






Комментариев нет:

Отправить комментарий