Системы счисления
Реальное положение дел с изучением систем счисления в школе прекрасно описывается единственной цитатой: «Я вообще, не понимаю, зачем это нужно изучать, какой в этом практический смысл». Процитирован учитель информатики высшей квалификационной категории, бывший учитель математики высшей квалификационной категории, суммарный стаж превысил 25 лет. Выводы я оставлю на усмотрение читателей. Большинство других учителей принципиально не могут системно сформулировать ответ на этот искренний вопрос, отделываясь общими шаблонными словами.
В том числе из-за этого, как здесь, так и на других страницах, вы увидите постоянные указания на системы счисления или основанное на них выведение количества.
Разные народы в своем развитии использовали различные системы счисления. Отголоски древних способов счета встречаются и в современном мире. Так, из древнего Вавилона сохранилось деление часа на 60 минут, минуты — на 60 секунд, а угла на 360°; из Древнего Рима — римская запись чисел (I, II, III, IV...); от англосаксов — счет дюжинами (в году — 12 месяцев, в футе — 12 дюймов, сутки делятся на 2 периода по 12 часов).
В результате, самой удобной оказалась десятичная (десятеричная) система счисления, которая пришла из Индии. В ней десять цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), но информацию несет не только сама цифра, но также и позиция, в которой она стоит.
Основание системы счисления — количество различных символов или знаков, используемых для записи чисел (основание заложено в название системы счисления!). По общепринятым правилам, основание записывается в нижнем индексе после числа: 102 в двоичной, 103 в троичной,.. 1010 в десятичной...
На практике изначально принимается, что существует 35 систем счисления с разными основаниями (9 цифровых от двоичной до десятичной и еще 26, где для обозначения новой цифры добавляются по одной буквы английского алфавита). В теории же, количество систем счисления равно количеству натуральных чисел, то есть бесконечно.
Алфавит системы счисления — перечень символов, используемых для записи чисел.
Так, для десятичной системы это будут приведенные выше 10 цифр, а для двоичной — только две (0 и 1).
Алфавит составляется из арабских цифр, начиная с нуля. Если знаков не хватает (например, шестнадцатеричная система), то берутся латинские буквы (A–F). Так как английских букв 26, то максимальной системой счисления, используемой без особых проблем, следует считать тридцатишестеричную (10+26). Это не является пределом (его нет в принципе). Для дальнейшей подстановки можно использовать любые знаки. Но, с современной компьютерной точки зрения можно признать пределом число знаков в Unicode-шрифте, то есть 65536 – 31 (65505).
Разрядная цифра — наименьшее число, которое может быть добавлено в данном разряде. С точки зрения систем счисления, разрядные цифры всегда записывают одинаково (единица и сколько-то нулей): 1, 10, 100, 1000... В реальном числе значение может превышать цифру, то есть получатся разрядные слагаемые. Так как в двоичной системе наибольшей цифрой является 1, разрядные цифры становятся единственным вариантом разрядных слагаемых.
Разрядное слагаемое — цифра, которая записана в конкретном разряде с добавлением к ней необходимого числа нулей. Важно, что предельное значение слагаемого зависит от системы счисления. Так, для второго разряда оно составит: 10 в двоичной, до 20 в троичной, до 30 в четверичной,... до 90 в десятичной...
Наиболее важными являются двоичная, восьмеричная, десятичная и шестнадцатеричная системы счисления. Это связано с их использованием в математике и для компьютерного представления информации.
Двоичная система счисления в вычислительной технике используется в связи с тем, что электронные элементы — триггеры (переключатели), из которых состоят микросхемы, могут находиться только в двух рабочих состояниях (включено или выключено — ноль или единица). Восьмеричная связана с основным кодированием символов восемью битами, а шестнадцатеричная — так как информация при хранении чаще укрупняется до двух байтов (16 бит) и из-за появления Unicode-шрифтов.
Степени чисел в десятичной системе
Прежде чем приступать к обсуждению. В последние годы изучение данной темы как на информатике, так и на математике почти не обсуждается.
Для освоения систем счисления необходимо четкое и полное понимание использования степеней чисел, которое в курсе математики к моменту проведения первых уроков по системам счисления (зачастую 5–6 класс) изучается недостаточно полно (только квадрат и куб).
Несмотря на то, что степень числа может принимать любое значение, нас будет интересовать только натуральные и нулевая степени на примере десятичной системы.
- Введем некоторые аксиомы.
- Любое число в нулевой степени равно единице a0 = 1.
- Любое число в первой степени равно самому себе a1 = a.
- an = .
Классификация систем счисления
Все современные системы можно разделить на два класса: непозиционные и позиционные.
В непозиционных системах (например, римской) значение знаков зависит от порядка их записи. Так, если I стоит перед V (IV), то это означает 5–1 = 4, а если после (VI), то это означает 5+1 = 6.
В позиционной системе, основным примером которой является повсеместно используемая десятичная, значение цифры четко зависит от ее положения (разряда).
Например, число 333 записывается тремя одинаковыми цифрами, но значение их различается по четким правилам: три сотни, три десятка и три единицы (333=300+30+3).
Важно подчеркнуть, что возможна другая форма записи такого разложения:
333 = 300 + 30 + 3 = 3•102 + 3•101 + 3•100.
Принято считать, что основание 10 возникло в соответствии с количеством пальцев у человека.
Сложение чисел
Первым и наиглавнейшим правилом нужно считать то, что арифметические действия с числами возможны только если они записаны в одной и той же системе счисления. Основных исключений два: числа 0 и 1 равны сами себе в любой системе счисления.
Складывать цифры разрядов надо по «давно забытому» правилу: если их сумма меньше предельной цифры (9 для десятичной системы), то их надо просто сложить. Если же сумма превышает эту максимальную цифру, то одно из слагаемых должно быть разложено на две части, одна из которых дополнит второе слагаемое до переполнения разряда (10 для десятичной). Пример: 7 + 6 = (7 + 3) + 3 = 10 + 3 = 13.
Перевод чисел
Данное действие можно считать самым простым из всех, относящихся к системам счисления. Каждая цифра числа образует слагаемое, которое надо записать, а потом произвести необходимые арифметические действия.
Прежде чем перейти к конкретным рассуждениям, надо отметить, что приводимые в заданиях числа, обычно не превышают 102410 или ненамного больше этого значения. Это связано с разумным ограничением сложности вычислений.
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2n | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
n2* | 1 | 10 | 100 | 1000 | 10000 | 100000 | ... |
Любое из производимых действий будет замкнуто на эту таблицу!
В десятичную систему
Вне зависимости от обсуждаемой системы счисления, любое число можно разбить на разряды, каждый из которых вносит определенный вклад в значение числа. Общей закономерностью является то, что чем правее стоит цифра, тем меньшее значение она подразумевает.
В качестве первого примера рассмотрим число 1111n
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
В качестве второго примера рассмотрим число 1234n
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Общая формула для перевода:
a1*n0 + a2*n1 + a3*n2 + a4*n3 + ... + ak*nk–1
где n — основание системы счисления, k — номер разряда числа.
Из десятичной системы
1. Остаток от деления
Последовательно делим число на основание до тех пор, пока не получим частное, равное нулю. Остатки записываем. После завершения вычислений записываем значения остатков в обратном порядке. Полученное число и будет ответом.
Разложим два числа: 23 и 64.
Делимое | Остаток | Смысл действия |
23 10 5 2 1 0 |
1 1 1 0 1 |
23/2 = 22/2 + 1 = 11 + 1 11/2 = 5 + 1 5/2 = 4/2 + 1 = 2 + 1 2/2 = 1 + 0 1/2 = 0 + 1 |
Делимое | Остаток | Смысл действия |
64 32 16 8 4 2 1 0 |
0 0 0 0 0 0 1 |
64/2 = 32 + 0 32/2 = 16 + 0 16/2 = 8 + 0 8/2 = 4 + 0 4/2 = 2 + 0 2/2 = 1 + 0 1/2 = 0 + 1 |
В некоторых учебниках (например, Босовой) предлагается таблицу записи располагать горизонтально, что очень удобно для сравнительно небольших чисел (<211).
В верхней строке записывается число. Остаток от деления (в нашем случае на 2) записывается под ним, а целая часть частного — в следующей колонке.
Делимое | 23 | 11 | 5 | 2 | 1 |
Остаток | 1 | 1 | 1 | 0 | 1 |
2310 = 101112
Способом деления можно перевести число в любую систему счисления. Давайте переведем 44 в троичную систему.
Делимое | 44 | 14 | 4 | 1 |
Остаток | 2 | 2 | 1 | 1 |
Трудно сказать, насколько комфортно ощущают себя люди, производящие привычное деление столь необычным образом. Лично я испытываю значительный дискомфорт, особенно при переводе не в двоичную систему.
Поэтому, давайте перейдем к другому, менее «магическому» способу.
2. Разложение
Как известно, любое число можно представить в виде суммы чисел.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Таким образом становиться ясно, что для этих вычислений нужно
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Порядок действий на практике
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Пример 1. Переведем 900 в семеричную систему.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Пример 2. Переведем 900 в пятеричную систему.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Пример 3. Переведем 900 в двоичную систему.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
В связи с довольно большой трудоемкостью, данный метод едва ли можно назвать слишком простым для двоичной системы. Но он вполне понятен и, из-за необходимости четкой записи, всегда может быть легко проверен.
В некоторых случаях, когда число очень мало отличается от степени основания, перевод может оказаться значительно более быстрым, чем другие способы.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Из двоичной в восьми- и шестнадцатеричную системы
Это действие является основным для многих заданий. К сожалению, большинство учебников предлагает зазубрить примерно следующий принцип.
Для перевода из двоичной системы счисления в восьмеричную следует разбить двоичное число по три разряда справа налево.
Необходимо заметить, что 8 = 23, а 16 = 24. Именно поэтому в приведенном правиле и используются группы по три разряда, а для перевода в 16-ричную потребуются уже 4 разряда.
Внимательный читатель может заметить, что еще осталось 4 = 22. То есть двоичную систему также легко можно преобразовать и в четверичную.
Отсюда же следует, что раз 9 = 32, то троичная система легко преобразуется в девятеричную, если разбить её число на пары.
Как это делается на практике.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Факультативный материал по переводу в четверичную систему.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Ответ: 11101101110112 = 13123234.
Из восьми и шестнадцатеричной систем в двоичную
Все также, как и в предыдущем разделе, только каждая цифра восьмеричного числа превращается в три двоичных цифры, а шестнадцатеричного — в четыре.
Типичной ошибкой является незаписывание ведущих нулей (10 вместо 010).
Некоторые советы и замечания
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Буквально пара слов о системах счисления и математике: сколько в числе нолей в конце, столько раз оно делится без остатка на основание системы.
Перевод десятичных дробей
Данный материал может потребоваться (а может и нет) для сдачи ЕГЭ и обучения в вузе.
Но, так как он всего лишь «присутствовал» в учебниках до ЕГЭ без должного объяснения и даже упоминания на экзамене, считаю необходимым вопрос полностью опустить. Без каких-либо дальнейших упоминаний.
Степени некоторых чисел
Степени числа 2
n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
2n | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 32768 | 65536 | 131072 | 262144 | 524288 | 1 048 576 |
2n | Результат | Двоичное представление |
Нолей |
Знаков |
Значения (штуки) |
20 | 1 | 1 | 0 | 1 | 0–1 (2=21) |
21 | 2 | 10 | 1 | 2 | 0–3 (4=22) |
22 | 4 | 100 | 2 | 3 | 0–7 (8=23) |
23 | 8 | 1000 | 3 | 4 | 0–15 (16=24) |
24 | 16 | 10000 | 4 | 5 | 0–31 (32=25) |
25 | 32 | 100000 | 5 | 6 | 0–63 (64=26) |
26 | 64 | 1000000 | 6 | 7 | 0–127 (128=27) |
27 | 128 | 10000000 | 7 | 8 | 0–255 (256=28) |
28 | 256 | 100000000 | 8 | 9 | 0–511 (512=29) |
- Выводы (n+1 — число знаков):
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Степени некоторых чисел
Осно- вание |
Степень | ||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
2 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1 024 |
3 | 1 | 3 | 9 | 27 | 81 | 243 | 729 | 2 187 | 6 561 | 19 683 | 59 049 |
4 (22) | 1 | 4 | 16 | 64 | 256 | 1 024 | 4 096 | 16 384 | 65 536 | 262 144 | |
5 | 1 | 5 | 25 | 125 | 625 | 3 125 | 15 625 | 78 125 | 390 625 | ||
6 | 1 | 6 | 36 | 216 | 1 296 | 7 776 | 46 656 | 279 936 | |||
7 | 1 | 7 | 49 | 343 | 2 401 | 16 807 | 117 649 | 823 543 | |||
8 (23) | 1 | 8 | 64 | 512 | 4 096 | 32 768 | 262 144 | ||||
9 (32) | 1 | 9 | 81 | 729 | 6 561 | 59 049 | 531 441 | ||||
10 | 1 | 10 | 100 | 1 000 | 10 000 | 100 000 | 1 000 000 | ||||
11 | 1 | 11 | 121 | 1 331 | 14 641 | 161 051 | |||||
12 | 1 | 12 | 144 | 1 728 | 20 736 | 248 832 | |||||
13 | 1 | 13 | 169 | 2 197 | 28 561 | 371 293 | |||||
14 | 1 | 14 | 196 | 2 744 | 38 416 | 537 824 | |||||
15 | 1 | 15 | 225 | 3 375 | 50 625 | 759 375 | |||||
16 (24) | 1 | 16 | 256 | 4 096 | 65 536 |
Значения некоторых чисел в различных системах счисления
(Таблица дана не для решения заданий, а для упрощения понимания закономерностей прироста и сравнения чисел разных систем счисления.)
Основание | |||||
10 | 2 | 3 | 4 | 8 | 16 |
0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 | 2 | 2 |
3 | 11 | 10 | 3 | 3 | 3 |
4 | 100 | 11 | 10 | 4 | 4 |
5 | 101 | 12 | 11 | 5 | 5 |
6 | 110 | 20 | 12 | 6 | 6 |
7 | 111 | 21 | 13 | 7 | 7 |
8 | 1000 | 22 | 20 | 10 | 8 |
9 | 1001 | 100 | 21 | 11 | 9 |
10 | 1010 | 101 | 22 | 12 | A |
11 | 1011 | 102 | 23 | 13 | B |
12 | 1100 | 110 | 30 | 14 | C |
13 | 1101 | 111 | 31 | 15 | D |
14 | 1110 | 112 | 32 | 16 | E |
15 | 1111 | 120 | 33 | 17 | F |
16 | 10000 | 121 | 100 | 20 | 10 |
17 | 10001 | 122 | 101 | 21 | 11 |
18 | 10010 | 200 | 102 | 22 | 12 |
19 | 10011 | 201 | 103 | 23 | 13 |
20 | 10100 | 202 | 110 | 24 | 14 |