Система счисления — Википедия
Системы счисления в культуре | |
---|---|
Индо-арабская | |
Арабская Тамильская Бирманская | Кхмерская Лаосская Монгольская Тайская |
Восточноазиатские | |
Китайская Японская Сучжоу Корейская | Вьетнамская Счётные палочки |
Алфавитные | |
Абджадия Армянская Ариабхата Кириллическая Греческая | Грузинская Эфиопская Еврейская Акшара-санкхья |
Другие | |
Вавилонская Египетская Этрусская Римская Дунайская | Аттическая Кипу Майяская Эгейская Символы КППУ |
Позиционные | |
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60 | |
Нега-позиционная | |
Симметричная | |
Смешанные системы | |
Фибоначчиева | |
Непозиционные | |
Единичная (унарная) |
Систе́ма счисле́ния (англ. numeral system или system of numeration) — символический метод записи чисел, представление чисел с помощью письменных знаков.
Система счисления:
Системы счисления подразделяются на:
В позиционных системах счисления один и тот же числовой знак (цифра) в записи числа имеет различные значения в зависимости от того места (разряда), где он расположен. Изобретение позиционной нумерации, основанной на поместном значении цифр, приписывается шумерам и вавилонянам; развита была такая нумерация индусами и имела неоценимые последствия в истории человеческой цивилизации. К числу таких систем относится современная десятичная система счисления, возникновение которой связано со счётом на пальцах. В средневековой Европе она появилась через итальянских купцов, в свою очередь заимствовавших её у арабов.
Под позиционной системой счисления обычно понимается b{\displaystyle b}-ичная система счисления, которая определяется целым числом b>1{\displaystyle b>1}, называемым основанием системы счисления. Целое число без знака x{\displaystyle x} в b{\displaystyle b}-ичной системе счисления представляется в виде конечной линейной комбинации степеней числа b{\displaystyle b}:
- x=∑k=0n−1akbk{\displaystyle x=\sum _{k=0}^{n-1}a_{k}b^{k}}, где ak{\displaystyle a_{k}} — это целые числа, называемые цифрами, удовлетворяющие неравенству 0≤ak≤(b−1){\displaystyle 0\leq a_{k}\leq (b-1)}.
Каждая степень bk{\displaystyle b^{k}} в такой записи называется весовым коэффициентом разряда. Старшинство разрядов и соответствующих им цифр определяется значением показателя k{\displaystyle k} (номером разряда). Обычно в записи ненулевых чисел начальные нули опускаются.
Если не возникает разночтений (например, когда все цифры представляются в виде уникальных письменных знаков), число x{\displaystyle x} записывают в виде последовательности его b{\displaystyle b}-ичных цифр, перечисляемых по убыванию старшинства разрядов слева направо:
- x=an−1an−2…a0.{\displaystyle x=a_{n-1}a_{n-2}\dots a_{0}.}
Например, число сто три представляется в десятичной системе счисления в виде:
- 103=1⋅102+0⋅101+3⋅100.{\displaystyle 103=1\cdot 10^{2}+0\cdot 10^{1}+3\cdot 10^{0}.}
Наиболее часто употребляемыми в настоящее время позиционными системами являются:
В позиционных системах чем больше основание системы счисления, тем меньшее количество разрядов (то есть записываемых цифр) требуется при записи числа.
Смешанная система счисления является обобщением b{\displaystyle b}-ичной системы счисления и также зачастую относится к позиционным системам счисления. Основанием смешанной системы счисления является возрастающая последовательность чисел {bk}k=0∞{\displaystyle \{b_{k}\}_{k=0}^{\infty }}, и каждое число x{\displaystyle x} в ней представляется как линейная комбинация:
- x=∑k=0n−1akbk{\displaystyle x=\sum _{k=0}^{n-1}a_{k}b_{k}}, где на коэффициенты ak{\displaystyle a_{k}}, называемые как и прежде цифрами, накладываются некоторые ограничения.
Записью числа x{\displaystyle x} в смешанной системе счисления называется перечисление его цифр в порядке уменьшения индекса k{\displaystyle k}, начиная с первого ненулевого.
В зависимости от вида bk{\displaystyle b_{k}} как функции от k{\displaystyle k} смешанные системы счисления могут быть степенными, показательными и т. п. Когда bk=bk{\displaystyle b_{k}=b^{k}} для некоторого b{\displaystyle b}, смешанная система счисления совпадает с показательной b{\displaystyle b}-ичной системой счисления.
Наиболее известным примером смешанной системы счисления является представление времени в виде количества суток, часов, минут и секунд. При этом величина «d{\displaystyle d} дней, h{\displaystyle h} часов, m{\displaystyle m} минут, s{\displaystyle s} секунд» соответствует значению d⋅24⋅60⋅60+h⋅60⋅60+m⋅60+s{\displaystyle d\cdot 24\cdot 60\cdot 60+h\cdot 60\cdot 60+m\cdot 60+s} секунд.
Факториальная система счисления[править | править код]
В факториальной системе счисления основаниями являются последовательность факториалов bk=k!{\displaystyle b_{k}=k!}, и каждое натуральное число x{\displaystyle x} представляется в виде:
- x=∑k=1ndkk!{\displaystyle x=\sum _{k=1}^{n}d_{k}k!}, где 0≤dk≤k{\displaystyle 0\leq d_{k}\leq k}.
Факториальная система счисления используется при декодировании перестановок списками инверсий: имея номер перестановки, можно воспроизвести её саму следующим образом: номер перестановки (нумерация начинается с нуля) записывается в факториальной системе счисления, при этом коэффициент при числе i!{\displaystyle i!} будет обозначать число инверсий для элемента i+1{\displaystyle i+1} в том множестве, в котором производятся перестановки (число элементов меньших i+1{\displaystyle i+1}, но стоящих правее его в искомой перестановке).
Пример: рассмотрим множество перестановок из 5 элементов, всего их 5! = 120 (от перестановки с номером 0 — (1,2,3,4,5) до перестановки с номером 119 — (5,4,3,2,1)), найдём перестановку с номером 100:
- 100=4!⋅4+3!⋅0+2!⋅2+1!⋅0=96+4;{\displaystyle 100=4!\cdot 4+3!\cdot 0+2!\cdot 2+1!\cdot 0=96+4;}
положим ti{\displaystyle t_{i}} — коэффициент при числе i!{\displaystyle i!}, тогда t4=4{\displaystyle t_{4}=4}, t3=0{\displaystyle t_{3}=0}, t2=2{\displaystyle t_{2}=2}, t1=0{\displaystyle t_{1}=0}, тогда: число элементов меньших 5, но стоящих правее равно 4; число элементов меньших 4, но стоящих правее равно 0; число элементов меньших 3, но стоящих правее равно 2; число элементов меньших 2, но стоящих правее равно 0 (последний элемент в перестановке «ставится» на единственное оставшееся место) — таким образом, перестановка с номером 100 будет иметь вид: (5,3,1,2,4) Проверка данного метода может быть осуществлена путём непосредственного подсчёта инверсий для каждого элемента перестановки.
Фибоначчиева система счисления[править | править код]
Фибоначчиева система счисления основывается на числах Фибоначчи. Каждое натуральное число n{\displaystyle n} в ней представляется в виде:
- n=∑kfkFk{\displaystyle n=\sum _{k}f_{k}F_{k}}, где Fk{\displaystyle F_{k}} — числа Фибоначчи, fk∈{0,1}{\displaystyle f_{k}\in \{0,1\}}, при этом в коэффициентах fk{\displaystyle f_{k}} есть конечное количество единиц и не встречаются две единицы подряд.
В непозиционных системах счисления величина, которую обозначает цифра, не зависит от положения в числе. При этом система может накладывать ограничения на положение цифр, например, чтобы они были расположены в порядке убывания.
Биномиальная система счисления[править | править код]
В биномиальной системе счисления (англ.) число x представляется в виде суммы биномиальных коэффициентов:
- x=∑k=1n(ckk){\displaystyle x=\sum _{k=1}^{n}{c_{k} \choose k}}, где 0≤c1<c2<⋯<cn.{\displaystyle 0\leq c_{1}<c_{2}<\dots <c_{n}.}
При всяком фиксированном значении n{\displaystyle n} каждое натуральное число представляется уникальным образом.[1]
Система остаточных классов (СОК)[править | править код]
Представление числа в системе остаточных классов основано на понятии вычета и китайской теореме об остатках. СОК определяется набором попарно взаимно простых модулей (m1,m2,…,mn){\displaystyle (m_{1},m_{2},\dots ,m_{n})} с произведением M=m1⋅m2⋅⋯⋅mn{\displaystyle M=m_{1}\cdot m_{2}\cdot \dots \cdot m_{n}} так, что каждому целому числу x{\displaystyle x} из отрезка [0,M−1]{\displaystyle [0,M-1]} ставится в соответствие набор вычетов (x1,x2,…,xn){\displaystyle (x_{1},x_{2},\dots ,x_{n})}, где
- x≡x1(modm1);{\displaystyle x\equiv x_{1}{\pmod {m_{1}}};}
- x≡x2(modm2);{\displaystyle x\equiv x_{2}{\pmod {m_{2}}};}
- …
- x≡xn(modmn).{\displaystyle x\equiv x_{n}{\pmod {m_{n}}}.}
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка [0,M−1]{\displaystyle [0,M-1]}.
В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в [0,M−1]{\displaystyle [0,M-1]}.
Недостатками СОК является возможность представления только ограниченного количества чисел, а также отсутствие эффективных алгоритмов для сравнения чисел, представленных в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям (m1,m1⋅m2,…,m1⋅m2⋅⋯⋅mn−1){\displaystyle (m_{1},m_{1}\cdot m_{2},\dots ,m_{1}\cdot m_{2}\cdot \dots \cdot m_{n-1})}.
Система счисления Штерна-Броко[править | править код]
Система счисления Штерна-Броко — способ записи положительных рациональных чисел, основанный на дереве Штерна-Броко.
Простая информатика — Система счисления
Система счисления – это способ записи чисел. Обычно, числа записываются с помощью специальных знаков – цифр (хотя и не всегда). Если вы никогда не изучали данный вопрос, то, по крайней мере, вам должны быть известны две системы счисления – это арабская и римская. В первой используются цифры 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*27 + 0*26 + 0*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20
Если посчитать сумму составляющих, то в итоге мы получим десятичное число, соответствующее 10001001:
1*27 + 0*26 + 0*25 + 0*24 + 1*2
Т.е. число 10001001 по основанию 2 равно числу 137 по основанию 10. Записать это можно так:
100010012 = 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*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20 = 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 в восьмеричной системе счисления. Или 10111012 = 1358.
Обратный перевод. Допустим, требуется перевести число 1008 (не заблуждайтесь! 100 в восьмеричной системе – это не 100 в десятичной) в двоичную систему счисления.
1008 = 1 0 0 = 001 000 000 = 001000000 = 10000002
Перевод восьмеричного числа в десятичное можно осуществить по уже знакомой схеме:
6728 = 6 * 82 + 7 * 81 + 2 * 80 = 6 * 64 + 56 + 2 = 384 + 56 + 2 = 44210
1008 = 1 * 82 + 0 * 81 + 0 * 80 = 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-е состояние
Лекция 3 Системы счисления
3.1. Основные понятия систем счисления
3.2. Виды систем счисления
3.3. Правила перевода чисел из одной системы счисления в другую
3.4. Иллюстрированный вспомогательный материал
3.5. Тестирование
3.6. Контрольные вопросы
Разные народы в разные времена использовали разные системы счисления. Следы древних систем счета встречаются и сегодня в культуре многих народов. К древнему Вавилону восходит деление часа на 60 минут и угла на 360 градусов. К Древнему Риму — традиция записывать в римской записи числа I, II, III и т. д. К англосаксам — счет дюжинами: в году 12 месяцев, в футе 12 дюймов, сутки делятся на 2 периода по 12 часов.
По современным данным, развитые системы нумерации впервые появились в древнем Египте. Для записи чисел египтяне применяли иероглифы один, десять, сто, тысяча и т.д. Все остальные числа записывались с помощью этих иероглифов и операции сложения. Недостатки этой системы — невозможность записи больших чисел и громоздкость.
В конце концов, самой популярной системой счисления оказалась десятичная система. Десятичная система счисления пришла из Индии, где она появилась не позднее VI в. н. э. В ней всего 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 но информацию несет не только цифра, но также и место позиция, на которой она стоит. В числе 444 три одинаковых цифры обозначают количество и единиц, и десятков, и сотен. А вот в числе 400 первая цифра обозначает число сотен, два 0 сами по себе вклад в число не дают, а нужны лишь для указания позиции цифры 4.
3.1. Основные понятия систем счисления
Система счисления — это совокупность правил и приемов записи чисел с помощью набора цифровых знаков. Количество цифр, необходимых для записи числа в системе, называют основанием системы счисления. Основание системы записывается в справа числа в нижнем индексе: ;;и т. д.
Различают два типа систем счисления:
позиционные, когда значение каждой цифры числа определяется ее позицией в записи числа;
непозиционные, когда значение цифры в числе не зависит от ее места в записи числа.
Примером непозиционной системы счисления является римская: числа IX, IV, XV и т.д.
Примером позиционной системы счисления является десятичная система, используемая повседневно.
Любое целое число в позиционной системе можно записать в форме многочлена:
где S — основание системы счисления;
— цифры числа, записанного в данной системе счисления;
n — количество разрядов числа.
Пример. Число запишется в форме многочлена следующим образом:
3.2. Виды систем счисления
Римская система счисленияявляется непозиционной системой. В ней для записи чисел используются буквы латинского алфавита. При этом буква I всегда означает единицу, буква — V пять, X — десять, L — пятьдесят, C — сто, D — пятьсот, M — тысячу и т.д. Например, число 264 записывается в виде CCLXIV. При записи чисел в римской системе счисления значением числа является алгебраическая сумма цифр, в него входящих. При этом цифры в записи числа следуют, как правило, в порядке убывания их значений, и не разрешается записывать рядом более трех одинаковых цифр. В том случае, когда за цифрой с большим значением следует цифра с меньшим, ее вклад в значение числа в целом является отрицательным. Типичные примеры, иллюстрирующие общие правила записи чисел в римской система счисления, приведены в таблице.
Таблица 2. Запись чисел в римской системе счисления
1 | 2 | 3 | 4 | 5 |
I | II | III | IV | V |
6 | 7 | 8 | 9 | 10 |
VI | VII | VIII | IX | X |
11 | 13 | 18 | 19 | 22 |
XI | XIII | XVIII | XIX | XXII |
34 | 39 | 40 | 60 | 99 |
XXXIV | XXXIX | XL | LX | XCIX |
200 | 438 | 649 | 999 | 1207 |
CC | 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. Соответствие чисел, записанных в различных системах счисления
Десятичная | Двоичная | Восьмеричная | Шестнадцатеричная |
1 | 001 | 1 | 1 |
2 | 010 | 2 | 2 |
3 | 011 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
Задания к зачётной работе «Система счисления. Перевод чисел. Арифметические операции в разных системах счисления»
Ход занятия
Вариант 1
1. Переведите числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
а) 948;
б) 763;
в) 994,125;
г) 523,25;
д) 203,82.
2. Переведите числа в десятичную систему счисления.
а) 1110001112;
б) 1000110112;
в) 1001100101,10012;
г) 1001001,0112;
д) 335,78;
е) 14C,A16.
3. Выполните сложение чисел.
а) 11101010102+101110012;
б) 101110102+100101002;
в) 111101110,10112+1111011110,12;
г) 1153,28+1147,328;
д) 40F,416+160,416.
4. Выполните вычитание чисел.
а) 10000001002-1010100012;
б) 10101111012-1110000102;
в) 1101000000,012-1001011010,0112;
г) 2023,58-527,48;
д) 25E,616-1B1,516.
5. Выполните умножение чисел.
а) 10010112*10101102;
б) 1650,28*120,28;
в) 19,416*2F,816.
Вариант 2
1. Переведите числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
а) 563;
б) 264;
в) 234,25;
г) 53,125;
д) 286,16.
2. Переведите числа в десятичную систему счисления.
а) 11000100102;
б) 100110112;
в) 1111000001,012;
г) 10110111,012;
д) 416,18;
е) 215,716.
3. Выполните сложение чисел.
а) 101111112+1100100002;
б) 1100101002+10111000012;
в) 1000000101,01012+1010000110,012;
г) 1512,48+1015,28;
д) 274,516+DD,416.
4. Выполните вычитание чисел.
а) 10000010012-1111101002;
б) 11110001012-11001101012;
в) 1100110101,12-1011100011,012;
г) 1501,348-1374,58;
д) 12D,316-39,616.
5. Выполните умножение чисел.
а) 1111012*10101112;
б) 1252,148*76,048;
в) 66,6816*1E,316.
Вариант 3
1. Переведите числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
а) 279;
б) 281;
в) 841,375;
г) 800,3125;
д) 208,92.
2. Переведите числа в десятичную систему счисления.
а) 11001110012;
б) 100111012;
в) 1111011,0012;
г) 110000101,012;
д) 1601,568;
е) 16E,B416.
3. Выполните сложение чисел.
а) 10001000012+10111001102;
б) 11011100112+1110001012;
в) 1011011,012+1000101110,10012;
г) 665,18+1217,28;
д) 30C,716+2А1,816.
4. Выполните вычитание чисел.
а) 111100102-101010012;
б) 11101000012-10110010012;
в) 1101001010,12-1011101001,110112;
г) 166,148-143,28;
д) 287,А16-62,816.
5. Выполните умножение чисел.
а) 10010012*1000102;
б) 324,28*122,128;
в) F,416*38,616.
Вариант 4
1. Переведите числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
а) 737;
б) 92;
в) 934,25;
г) 413,5625;
д) 100,94.
2. Переведите числа в десятичную систему счисления.
а) 11100000102;
б) 10001002;
в) 110000100,0012;
г) 1001011111,000112;
д) 665,428;
е) 246,1816.
3. Выполните сложение чисел.
а) 111101002+1101000012;
б) 11011102+1010010002;
в) 1100110011,12+111000011,1012;
г) 1455,048+203,38;
д) 14Е,816+184,316.
4. Выполните вычитание чисел.
а) 10000101012-1001010002;
б) 10010110112-1010011102;
в) 111111011,1012-100000010,012;
г) 341,28-275,28;
д) 249,516-ЕЕ,А16.
5. Выполните умножение чисел.
а) 10010002*10100112;
б) 412,58*13,18;
в) 3B,A16*10,416.
Ответы
Вариант 1
Задание 1 | Задание 2 | Задание 3 |
а) 94810=11101101002=16648=3B416; б) 76310=10111110112=13738=2FB16; в) 994,12510=1111100010,0012=1742,18=3Е2,216; г) 523,2510=1000001011,012=1013,28=20В,416; д)203,8210=11001011,11012=313,64368=СВ,D1EB16. | а) 44510; б) 28310; в) 613,562510; г) 73,37510; д) 221,87510; е) 332,62510. | а) 100011000112; б) 1010011102; в) 10111001101,00112; г) 2322,528; д) 56F,816. |
Задание 4 | Задание 5 | |
а) 101100112; б) 111110112; в)11100101,1112; г) 1274,18; д) AD,116. | а) 11001001100102; б) 222576,048; в) 4AF,616. |
Вариант 2
Задание 1 | Задание 2 | Задание 3 |
а) 56310=10001100112=10638=23316; б) 26410=1000010002=4108=10816; в) 234,2510=11101010,012=352,28=EA,416; г) 53,12510=110101,0012=65,18=35,216; д) 286,1610=100011110,001012=436,12178=11E,28F5C16. | а) 78610; б) 15510; в) 961,2510; г) 183,2510; д) 270,12510; е) 533,437510. | а) 10010011112; б) 100011101012; в)10010001011,10012; г) 2527,68; д) 351,916. |
Задание 4 | Задание 5 | |
а) 101012; б) 100100002; в) 010010,012; г) 104,648; д) F3,D16. | а) 10100101110112; б) 122542,2068; в) С13,63816. |
Вариант 3
Задание 1 | Задание 2 | Задание 3 |
а) 27910=1000101112=4278=11716; б) 28110=1000110012=4318=11916; в) 841,37510=1101001001,0112=1511,38=349,616; г) 800,312510=1100100000,01012=1440,248=320,516; д)208,9210=11010000,111012=320,7278=D0,EB85116. | а) 82510; б) 15710; в) 123,12510; г) 389,2510; д) 897,7187510; е) 366,70312510. | а) 101000001112; б) 101001110002; в)1010001001,11012; г) 2104,38; д) 5AD,F16. |
Задание 4 | Задание 5 | |
а) 10010012; б) 110110002; в) 1100000,101012 г) 22,748; д) 225,216. | а) 1001101100102; б) 42035,5248; в) 35B,B816. |
Вариант 4
Задание 1 | Задание 2 | Задание 3 |
а) 73710=10111000012=13418=2E116; б) 9210=10111002=1348=5С16; в) 934,2510=1110100110,012=1646,28=3А6,416; г) 413,562510=110011101,10012=635,448=19D,916; д) 100,9410=1100100,11112=144,74128=64,F0A3D16. | а) 89810; б) 6810; в) 388,12510; г) 607,0937510; д) 437,5312510; е) 582,0937510. | а) 10100101012; б) 1101101102; в) 1001111011,0012; г) 1660,348; д) 2D2,B16. |
Задание 4 | Задание 5 | |
а) 111011012; б) 1000011012; в) 11111001,0112; г) 448; д) 15А,B16. | а) 10111010110002; б) 5626,158; в) 3С8,Е816. |
Лекция № 2. Системы счисления
Позиционные и непозиционные системы
Системой счисления называется метод записи чисел в виде комбинаций графических символов. Число – это некоторая абстрактная сущность для описания количества, а цифры – знаки, используемые для записи чисел. В наше время самыми распространёнными являются арабские цифры, менее распространены римские цифры. Система римских цифр основана на употреблении особых знаков для десятичных разрядов: I=1, X=10, C=100, M=1000 и их половин: V=5, L=50, D=500. Существует множество других способов записи чисел. Например, древние греки использовали для этой цели буквы своего алфавита, а древние шумеры – клинописные знаки. Существуют позиционные и непозиционные системы счисления.
Позиционная система счисления – система записи чисел в виде последовательности символов, в которой численное значение каждого символа зависит от его положения в записи.
Примером позиционной системы является хорошо известная десятичная система счисления. Примером непозиционной системы – римская система. Выполнение арифметических действий над числами в непозиционной системе весьма неудобно. Поэтому позиционные системы в настоящее время получили наибольшее распространение.
Изобретение позиционной системы приписывается шумерам и вавилонянам. Затем она была развита индусами. В средневековой Европе позиционная десятичная система появилась благодаря итальянским купцам, которые заимствовали её у мусульман. В 9 веке великий арабский математик Мухаммед ибн Мусе Аль Хорезми впервые описал десятичную систему исчисления и правила выполнения простых арифметических действий в ней. В 12 веке его работы были переведены на латинский язык, благодаря чему Европа смогла познакомиться с этим изобретением человеческого ума.
Десятичная система
Существуют различные позиционные системы исчисления, отличающиеся между собой количеством используемых знаков. Чтобы различать числа в разных системах исчисления, в конце числа ставят индекс – символ системы. Например, запись означает обычное число 483,56 в десятичной системе счисления, а записьозначает совсем другое число (хотя и похожее по виду) вшестнадцатеричной системе счисления (в десятичной оно равно 1155,335938). Если из контекста понятно, что используется только десятичная система (или только шестнадцатеричная, или какая-нибудь другая), то при записи числа индекс обычно опускают.
Десятичная система использует десять различных знаков: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – которые обозначают натуральные числа в порядке их возрастания от нуля до девяти. Число 10 является основанием десятичной системы. Оно не имеет специального знака, а обозначается с помощью двух первых символов этой системы.
Например, запись 483,56 в десятичной системе означает, что данное число складывается из четырех сотен (), восьми десяток (), трех единиц (), пяти десятых частей единицы () и шести сотых частей единицы (). Другими словами, мы можем записать:
. (2.1)
Двоичная система
Двоичная (бинарная) система счисления является самой простой из всех позиционных систем. Она содержит только два символа 0 и 1, и используется в компьютерной технике благодаря своей простоте и высокой надежности. Двоичная система была изобретена великим немецким ученым Готфридом Вильгельмом Лейбницем (1646-1716), который использовал ее в созданной им механической счетной машине. В первом столбце табл. 2.1 приведены десятичные числа, а во втором – соответствующие им двоичные числа.
Таблица 2.1
Десятичное число | Бинарный код | Код Грея | Десятичное число |
0 1 2 3 = 2 + 1 4 5 = 4 +1 6 = 4 + 2 7 = 4 + 2 + 1 8 9 = 8 + 1 10 = 8 + 2 11 = 8 + 2 + 1 12 = 8 + 4 13 = 8 + 4 + 1 14 = 8 + 4 + 2 15 = 8 + 4 + 2 + 1 | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 | 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 | 0 1 2 = 3 – 1 3 4 = 7 – 3 5 = 7 – 3 +1 6 = 7 – 1 7 8 = 15 – 7 9 = 15 – 7 + 1 10 = 15 – 7 + 3 – 1 11 = 15 – 7 + 3 12 = 15 – 3 13 = 15 – 3 + 1 14 = 15 – 1 15 |
Предположим, что нам нужно преобразовать двоичное число с дробной частью 1100,1011 в более привычное десятичное число. В табл. 2.2 показано, как осуществляется такое преобразование.
Таблица 2.2
Двоичное число | Десятичное число | |||||||
Целая часть | Дробная часть | |||||||
1 | 1 | 0 | 0, | 1 | 0 | 1 | 1 | |
+ | + | + | + | + | + | + | = |
Обратное преобразование десятичного числа d в двоичное число (бинарный код) осуществляется в соответствии со следующим алгоритмом. Присваиваем числу d индекс (), и ищем целое число, удовлетворяющее неравенству
, . (2.2)
Если , то задача выполнена – искомое двоичное число содержит единицу в старшем разряде инулей за ней.
Если , то вычисляем разность, и ищем для нее соответствующее число, пользуясь формулой (2.2) с. Операцию вычисления разницыи нахожденияповторяем до тех пор, пока при каком-либоне выполнится условие:.
Очевидно, что (т.е.). При построении искомого бинарного числа используют правило: численные значениясоответствуют разрядам бинарного кода, в котором стоят единицы. Остальные разряды заполняются нулями.
Используем это правило для нахождения бинарного кода десятичного числа 108,5. Согласно формуле (2.2), получаем: .
Искомое двоичное число равно: 1101100,1. Первая единица слева в записи числа соответствует 6 разряду, вторая за ней – пятому разряду. Четвертого разряда нет, поэтому за двумя первыми единицами записываем ноль. Третий и второй разряды есть – после нуля записываем две единицы. Единичного и нулевого разрядов также нет – после двух единиц записываем два нуля. Минус первый разряд есть – поэтому после запятой записываем единицу.
Арифметические операции в двоичной системе осуществляются так же, как и в десятичной («столбиком»). Например, возьмем числа 0111 () и 0101 (), и произведем операции сложения и умножения:
,
В результате получим 1100 () и 100011 (), что и следовало ожидать.
Код Грея
Помимо двоичных чисел на практике применяются и другие коды, использующие два знака: 0 и 1. В этом разделе мы познакомимся с кодом Грея. При сортировке данных естественным представлением является обычное целочисленное описание, поскольку среди десяти цифр каждая на 1 больше предыдущей. При переходе к двоичному описанию эта естественность исчезает. Рассмотрим битовое представление чисел 6, 7, 8 и 9:
0110 0111 1000 1001.
Числа 6 и 7, а также 8 и 9 отличаются друг от друга на один бит. Однако числа 7 и 8 не имеют между собой ничего общего! Это свойство представления может вызвать большие проблемы при решении задач, требующих систематизации числовых данных. Для решения проблемы неоднородности представления используется код Грея.
Код Грея – система нумерации, в которой два соседних значения различаются только в одном разряде.
Код Грея показан в третьем столбце табл. 2.1. Наиболее часто на практике применяется рефлексивный двоичный код Грея, хотя в общем случае существует бесконечное множество кодов Грея для систем счисления с любым основанием. В большинстве случаев, под термином «код Грея» понимают именно рефлексивный бинарный код Грея. Название рефлексный (отражённый) двоичный код происходит от факта, что вторая половина значений в коде Грея эквивалентна первой половине, только в обратном порядке, за исключением старшего бита, который просто инвертируется. Если же разделить каждую половину ещё раз пополам, свойство будет сохраняться для каждой из половин половины и т.д.
Код Грея был разработан Фрэнком Греем, исследователем Bell Labs. Он использовал этот код в своей импульсной системе связи (на него был получен патент № 2632058).
При преобразовании бинарного кода в десятичное число мы умножаем ноль или единицу на , где – номер позиции бита в бинарном коде (; и т.д.), а затем суммируем полученные результаты.
При преобразовании кода Грея в десятичное число мы умножаем ноль или единицу на (), где – номер позиции бита в коде Грея (; и т.д.). Дальше вычитаем из результата, соответствующего старшей единице, результат, соответствующий единице меньшего разряда, прибавляем результат, соответствующий единице еще более меньшего разряда и т.д. (смотри последний столбец табл. 2.1).
Троичная система счисления
Троичная система счисления – позиционная система счисления с целочисленным основанием равным 3. Она существует в двух вариантах: несимметричная и симметричная троичные системы. Несимметричная система обычно использует символы: 0, 1 и 2. Симметричная: –1, 0, +1. В табл. 2.3 показаны десятичные числа и соответствующие им числа в троичной системе счисления.
Таблица 2.3
Десятичная | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Троичная несимметричная | -10 | -2 | -1 | 0 | 1 | 2 | 10 | 11 | 12 | 20 | 21 | 22 | 100 |
Троичная симметричная | 11 | 100 |
Элементы троичной системы существовали еще у древних шумеров. Полноценную симметричную троичную систему впервые предложил итальянский математик Фибоначчи (Леонардо Пизанский) (1170–1250). Симметричная троичная система позволяет изображать отрицательные числа, не используя отдельный знак минуса.
В момент зарождения компьютерной техники троичная система составляла серьезную конкуренцию двоичной системе. Ее преимущество заключается в том, что она обеспечивает наибольшую плотность записи чисел по сравнению с другими целочисленными системами. Поясним это на следующем примере.
Предположим, что в компьютере мы используем числа в позиционной системе с целочисленным основанием . При этом каждое число имеет максимумразрядов. Значит, для сохранения числа в памяти компьютера требуетсяячеек памяти, причем каждая ячейка должна быть способна находиться всостояниях. Аппаратные затраты составляют:.
Используя систему с основанием иразрядов, мы способны представитьразличных чисел. Эффективность применяемой в компьютере системы счисления можно оценить с помощью следующего числового критерия:
. (2.3)
Чем больше чисел мы можем представить в данной системе счисления, и чем меньше при этом аппаратные затраты, тем эффективнее система по данному критерию.
Чаще критерий эффективности используют в такой форме
. (2.4)
Практически критерий (2.4) равнозначен критерию (2.3), однако удобнее в использовании. Равнозначность основана на факте: если , то. График функциипоказан на рис. 2.1.
Рис.2.1. График функции
Эта функция имеет максимум для . При целых значенияхмаксимум достигается для= 3.
;
;
;
.
Таким образом, наиболее эффективной по критерию (2.4) является троичная система счисления (используемая в троичных компьютерах), следом за которой идут двоичная система счисления (традиционно используемая в большинстве распространённых компьютеров) и четверичная система счисления.
В 1958 году Николай Петрович Брусенцов из МГУ построил первую серийную электронную троичную ЭВМ «Сетунь» на ячейках из ферритдиодных магнитных усилителей переменного тока, работавших в двухбитном троичном коде, четвёртое состояние двух битов не использовалось. В 1970 году Брусенцов построил вторую серийную электронную троичную ЭВМ «Сетунь-70».
В 1973 году в США впервые был создан экспериментальный троичный компьютер, а в 2008 году там же была построена троичная цифровая компьютерная система TCA2 на 1484-х интегральных транзисторах.
Тем не менее, в настоящее время двоичные компьютеры доминируют в компьютерной технике благодаря своей простоте и высокой надежности.
Восьмеричная и шестнадцатеричная системы счисления
Позиционную систему счисления можно построить по любому основанию. Однако наибольшее практическое значение имеют: двоичная, десятичная, восьмеричная и шестнадцатеричная. Причем, последние две используются, в основном, не для вычислений, а для представления двоичного кода в форме, удобной для человека.
В табл. 2.4 представлено 24-битное двоичное слово и соответствующие ему 8-ричный и 16-ричный коды.
Таблица 2.4
Двоичный код | 1011001111000101100010112 |
Восьмеричный код | 547426138 |
Шестнадцатеричный код | B3C58B16 |
Очевидно, что человеку легче воспринимать двоичный код в форме 8-ричного или 16-ричного кодов. При использовании 8-ричного кода три бита двоичного слова преобразуются в один символ. При использовании 16-ричного слова каждые четыре бита двоичного слова преобразуются в один символ. В табл. 2.5 показано, как осуществляется это преобразование. Как можно видеть, шестнадцатеричные числа обозначаются с помощью 10 арабских цифр и шести букв латинского алфавита.
Таблица 2.5
8-ричное число | Бинарный код | 16-ричное число | Бинарный код |
0 1 2 3 4 5 6 7 | 000 001 010 011 100 101 110 111 | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 |
система счисления. Виды систем счисления
В курсе информатики, вне зависимости, школьном или университетском, особое место уделяется такому понятию как системы счисления. Как правило, на него выделяют несколько уроков или практических занятий. Основная цель — не только усвоить основные понятия темы, изучить виды систем счисления, но и познакомиться с двоичной, восьмеричной и шестнадцатеричной арифметикой.
Что это значит?
Начнем с определения основного понятия. Как отмечает учебник «Информатика», система счисления — это система записи чисел, в которой используется специальный алфавит или определенный набор цифр.
В зависимости от того, меняется ли значение цифры от ее положения в числе, выделяют две: позиционную и непозиционную системы счисления.
В позиционных системах значение цифры меняется вместе с ее положением в числе. Так, если взять число 234, то цифра 4 в ней означает единицы, если же рассмотреть число 243, то тут она будет уже означать десятки, а не единицы.
В непозиционных системах значение цифры статично, вне зависимости от ее положения в числе. Наиболее яркий пример – палочковая система, где каждая единица обозначается с помощью черточки. Неважно, куда вы припишите палочку, значение числа измениться лишь на единицу.
Непозиционные системы
К непозиционным системам счисления относятся:
- Единичная система, которая считается одной из первых. В ней вместо цифр использовались палочки. Чем их было больше, тем больше было значение числа. Встретить пример чисел, записанных таким образом, можно в фильмах, где речь идет о потерянных в море людях, заключенных, которые отмечают каждый день с помощью зарубок на камне или дереве.
- Римская, в которой вместо цифр использовались латинские буквы. Используя их, можно записать любое число. При этом его значение определялось с помощью суммы и разницы цифр, из которых состояло число. Если слева от цифры находилось меньшее число, то левая цифра вычиталась из правой, а если справа цифра была меньше или равна цифре слева, то их значения суммировались. Например, число 11 записывалось как XI, а 9 – IX.
- Буквенные, в которых числа обозначались с помощью алфавита того или иного языка. Одной из них считается славянская система, в которой ряд букв имел не только фонетическое, но и числовое значение.
- Вавилонская система счисления, в которой использовалось всего два обозначения для записи – клинья и стрелочки.
- В Египте тоже использовались специальные символы для обозначения чисел. При записи числа каждый символ мог использоваться не более девяти раз.
Позиционные системы
Большое внимание уделяется в информатике позиционным системам счисления. К ним относятся следующие:
- двоичная;
- восьмеричная;
- десятичная;
- шестнадцатеричная;
- шестидесятеричная, используемая при счете времени (к примеру, в минуте — 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.
Далее записываем все полученные нами остатки в обратном порядке, начиная с итога деления: 1001.
Вне зависимости от итоговой системы счисления, перевод чисел из десятичной в любую другую будет происходить по принципу деления числа на основу позиционной системы.
Перевод чисел: из двоичной в десятичную
Довольно легко переводить числа и в десятичную систему счисления из двоичной. Для этого достаточно знать правила возведения чисел в степень. В данном случае, в степень двойки.
Алгоритм перевода следующий: каждую цифру из кода двоичного числа необходимо умножить на двойку, причем, первая двойка будет в степени m-1, вторая – m-2 и так далее, где m – количество цифр в коде. Затем сложить результаты сложения, получив целое число.
Для школьников этот алгоритм можно объяснить проще:
Для начала берем и записываем каждую цифру, умноженную на двойку, затем проставляем степень двойки с конца, начиная с нуля. Потом складываем полученное число.
Для примера разберем с вами полученное ранее число 1001, переведя его в десятичную систему, и заодно проверим правильность наших вычислений.
Выглядеть это будет следующим образом:
1*23 + 0*22+0*21+1*20= 8+0+0+1 =9.
При изучении данной темы удобно использовать таблицу со степенями двойки. Это существенно уменьшит количество времени, необходимое для проведения вычислений.
Другие варианты перевода
В некоторых случаях перевод может осуществляться между двоичной и восьмеричной системой счисления, двоичной и шестнадцатеричной. В таком случае можно пользоваться специальными таблицами или же запустить на компьютере приложение калькулятор, выбрав во вкладке вид вариант «Программист».
Арифметические операции
Вне зависимости от того, в каком виде представлено число, с ним можно проводить привычные для нас вычисления. Это может быть деление и умножение, вычитание и сложение в системе счисления, которую вы выбрали. Конечно, для каждой из них действуют свои правила.
Так для двоичной системы разработаны свои таблицы для каждой из операций. Такие же таблицы используются и в других позиционных системах.
Заучивать их необязательно – достаточно просто распечатать и иметь под рукой. Также можно воспользоваться калькулятором на ПК.
Одна из важнейших тем в информатике – система счисления. Знание этой темы, понимание алгоритмов перевода чисел из одной системы в другую – залог того, что вы сможете разобраться в более сложных темах, таких как алгоритмизация и программирование и сможете самостоятельно написать свою первую программу.
3.3. Правила перевода чисел из одной системы счисления в другую
Перевод чисел из одной системы счисления в другую составляет важную часть машинной арифметики. Рассмотрим основные правила перевода.
1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней двойки:
Таблица 4. Степени числа 2
n (степень) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
Пример . Число перевести в десятичную систему счисления.
2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней восьмерки:
Таблица 5. Степени числа 8
n (степень) | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
1 | 8 | 64 | 512 | 4096 | 32768 | 262144 |
Пример . Число перевести в десятичную систему счисления.
3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:
При переводе удобно пользоваться таблицей степеней числа 16:
Таблица 6. Степени числа 16
n (степень) | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
1 | 16 | 256 | 4096 | 65536 | 1048576 | 16777216 |
Пример . Число перевести в десятичную систему счисления.
4. Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в двоичную систему счисления.
5. Для перевода десятичного числа в восьмеричную систему его необходимо последовательно делить на 8 до тех пор, пока не останется остаток, меньший или равный 7. Число в восьмеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в восьмеричную систему счисления.
6. Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.
Пример. Число перевести в шестнадцатеричную систему счисления.
7. Чтобы перевести число из двоичной системы в восьмеричную, его нужно разбить на триады (тройки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую триаду нулями, и каждую триаду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример. Число перевести в восьмеричную систему счисления.
8. Чтобы перевести число из двоичной системы в шестнадцатеричную, его нужно разбить на тетрады (четверки цифр), начиная с младшего разряда, в случае необходимости дополнив старшую тетраду нулями, и каждую тетраду заменить соответствующей восьмеричной цифрой (табл. 3).
Пример. Число перевести в шестнадцатеричную систему счисления.
9. Для перевода восьмеричного числа в двоичное необходимо каждую цифру заменить эквивалентной ей двоичной триадой.
Пример. Число перевести в двоичную систему счисления.
10. Для перевода шестнадцатеричного числа в двоичное необходимо каждую цифру заменить эквивалентной ей двоичной тетрадой.
Пример. Число перевести в двоичную систему счисления.
11. При переходе из восьмеричной системы счисления в шестнадцатеричную и обратно, необходим промежуточный перевод чисел в двоичную систему.
Пример 1. Число перевести в восьмеричную систему счисления.
Пример 2. Число перевести в шестнадцатеричную систему счисления.
3.6. Контрольные вопросы. Системы счисления
1. Что называется системой счисления?
2. На какие два типа можно разделить все системы счисления?
3. Какие системы счисления называются непозиционными? Почему? Приведите пример такой системы счисления и записи чисел в ней?
4. Какие системы счисления применяются в вычислительной технике: позиционные или непозиционные? Почему?
5. Какие системы счисления называются позиционными?
6. Как изображается число в позиционной системе счисления?
7. Что называется основанием системы счисления?
8. Что называется разрядом в изображении числа?
9. Как можно представить целое положительное число в позиционной системе счисления?
10. Приведите пример позиционной системы счисления.
11. Опишите правила записи чисел в десятичной системе счисления: а) какие символы образуют алфавит десятичной системы счисления? б) что является основанием десятичной системы счисления? в) как изменяется вес символа в записи числа в зависимости от занимаемой позиции?
12. Какие числа можно использовать в качестве основания системы счисления?
13. Какие системы счисления применяются в компьютере для представления информации?
14. Охарактеризуйте двоичную систему счисления: алфавит, основание системы счисления, запись числа.
15. Почему двоичная система счисления используется в информатике?
16. Дайте характеристику шестнадцатеричной системе счисления: алфавит, основание, запись чисел. Приведите примеры записи чисел.
17. По каким правилам выполняется сложение двух положительных целых чисел?
18. Каковы правила выполнения арифметических операций в двоичной системе счисления?
19. Для чего используется перевод чисел из одной системы счисления в другую?
20. Сформулируйте правила перевода чисел из системы счисления с основанием р в десятичную систему счисления и обратного перевода: из десятичной системы счисления в систему счисления с основанием S. Приведите примеры.
21. В каком случае для перевода чисел из одной системы счисления (СС) в другую может быть использована схема Горнера вычисления значения многочлена в точке? Каковы преимущества ее использования перед другими методами? Приведите пример.
22. Как выполнить перевод чисел из двоичной СС в восьмеричную и обратный перевод? Из двоичной СС в шестнадцатеричную и обратно? Приведите примеры. Почему эти правила так просты?
23. По каким правилам выполняется перевод из восьмеричной в шестнадцатеричную СС и наоборот? Приведите примеры.