Системы счисления - Представление информации - ИНФОРМАЦИОННЫЕ ПРОЦЕССЫ

Информатика - Новый полный справочник для подготовки к ОГЭ

Системы счисления - Представление информации - ИНФОРМАЦИОННЫЕ ПРОЦЕССЫ

Конспект

Общие сведения о системах счисления

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

В настоящее время мы пользуемся позиционной системой счисления. Для понимания этого термина введём ещё несколько понятий.

Назовём весом цифры тот вклад, который эта цифра добавляет в значение числа. Под значением числа будем представлять себе, например, количество палочек, которое число описывает. Так, уже упомянутое римское число VI — это шесть палочек — ||||||, число IV — это четыре палочки — ||||. Определим вес цифр в этих числах.

Цифра V в обоих случаях имеет вес пять — |||||” цифра I в числе VI имеет вес один — ещё одна палочка |, а в числе IV — имеет вес минус один — минус одна палочка. В римском числе II обе цифры I имеют одинаковый вес — один — одна палочка |.

Рассмотрим знакомые мы с детства числа той системы счисления, которой мы пользуемся в повседневной жизни. В числе 11 цифры 1 имеют разный вес. Правая цифра 1 имеет вес десять — десять палочек — ||||||||||. В то же время левая цифра 1 имеет вес один — одна палочка — |.

Система счисления, в которой вес цифры зависит от её положения в числе, называется позиционной системой счисления.

Обратите внимание, в чём ключевое отличие позиционной системы счисления от непозиционной — в позиционной системе счисления вес каждой цифры зависит от её положения в числе.

На примере чисел VI и IV римская система счисления имеет признаки позиционной (вес цифры I в этих числах зависит от положения цифры I относительно цифры V). Но наличие в системе счисления числа II, в котором вес обеих цифр одинаковый, сразу переводит римскую систему счисления в категорию непозиционных.

Количество цифр в алфавите позиционной системы счисления называется основанием системы счисления. Именно во столько раз в позиционной системе счисления вес каждого разряда больше предыдущего. Таким образом, уже знакомая нам система счисления называется десятичной позиционной. В ней десять цифр (от 0 до 9) и вес каждого разряда в десять раз больше предыдущего. Основание системы счисления принято писать справа внизу маленькими цифрами возле числа. Например, упомянутое нами число 11 правильнее записать как 1110.

Для десятичной системы счисления основание обычно опускают.

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

Например, в пятеричной системе счисления — пять цифр. Это 0, 1, 2, 3 и 4.

Обратите внимание!

Цифры 5 в пятеричной системе счисления нет. И больших цифр тоже нет.

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

В двоичной системе счисления — всего две цифры. Это 0 и 1.

В восьмеричной системе счисления — 8 цифр. Это 0, 1, 2, 3, 4, 5, 6 и 7.

Самая большая цифра, которая используется в позиционной системе счисления, на 1 меньше, чем основание системы счисления. В десятичной системе счисления самая большая цифра — 9. В двоичной — 1, в пятеричной — 4.

Теперь отдельно рассмотрим 16-ричную систему счисления. В ней, соответственно, должно быть 16 цифр. Но нас в детства научили писать только 10 различных цифр — от 0 до 9! Как же быть? Для оставшихся цифр от десяти до пятнадцати принято использовать последовательные буквы латинского алфавита. То есть, цифра десять обозначается как А, цифра одиннадцать — В, а цифра пятнадцать — F.

Ещё раз хотелось бы обратить внимание на то, что буквам А, В, С, D, Е, F соответствуют цифры от десяти до пятнадцати! Одна из частных ошибок — учащиеся считают, что А — это одиннадцать.

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

Пусть имеется число 34510. Посмотрим, сколько это с точки зрения системы счисления.

Все мы знаем, что 345 содержит 3 сотни, 4 десятка и 5 единиц. Попробуем представить это более формально. Пронумеруем разряды числа справа налево, начиная с нуля:

Теперь вспомним, что сотня — это 102, а десяток — это 101, а единицу представим как 10°. Получится, что наше число 34510 представимо как:

Получили правило, по которому число из любой системы счисления можно перевести в десятичную систему:

1) пронумеровать разряды числа справа налево, начиная с нуля,

2) выписать цифры числа, помноженные на основание системы счисления, возведённое в степень (номер разряда), написанную над цифрой,

3) сложить все полученные величины.

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

Пронумеруем разряды справа налево, начиная с нуля:

Теперь выписываем цифры числа, умноженные на основание системы счисления (5) в степени номера разряда:

Аналогично переведём число 2AB16. Нумеруем разряды:

Точно так же можно перевести число из любой системы счисления, в том числе, из двоичной. Однако, при переводе из двоичной системы счисления процедуру возможно несколько упростить. Это связано с тем, что все цифры в двоичной системе счисления — нули и единицы. Умножать на нули не имеет смысла, потому что получится всё равно ноль. А умножать на единицу не имеет смысла, потому что получится то же, что и было. Поэтому процедура перевода из двоичной системы счисления сводится к следующему: нумеруем разряды справа налево, начиная с нуля; складываем двойки, возведённые в степени номеров разрядов, при которых стоят единицы.

Пример:

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

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

Рассмотрим перевод числа 13 в двоичную систему счисления. Так как хотим получить двоичное число, будем делить уголком нацело на 2.

После первого деления получаем частное бив остатке 1.

Продолжаем делить частное на 2 с остатком, пока не получим частное, равное нулю:

Обратите внимание, последнее действие — деление числа 1 на число 2. При этом получается вовсе не 0,5, как мы привыкаем к 9-му классу, а 0 целых и 1 в остатке. То есть, если делимое меньше делителя, то частное получается 0 и в остатке остаётся целиком делимое. Например, при делении 13 нацело на 16, получается 0 и в остатке 13.

Получившиеся в процессе четырёх делений остатки (1, 0, 1, 1) выписываем в обратном порядке:

Получаем двоичное число: 11012.

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

Например, переведём число 329 в пятеричную систему счисления.

Для этого будем делить уголком на 5 и собирать остатки в обратном порядке:

Получаем число 23045.

Как проверить, что мы правильно перевели в другую систему счисления?

Можно просто перевести полученное число снова в десятичную систему счисления:

Проверка:

Рассмотрим ещё один пример — перевод в 16-ричную систему счисления:

В результате деления получилось два остатка — 12 и 5.

Типичная ошибка — записать ответ как 125! Ведь остатков получилось два, значит, и в ответе должны быть записаны две цифры (а не три, как в числе 125). В этот момент следует вспомнить, что 12 нужно записать как 16-ричную цифру, т.е., как цифру С.

Получаем ответ: С5.

Другой способ перевода в двоичную систему счисления

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

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

То есть:

1) представляем исходное число в виде суммы степеней числа 2;

2) выписываем двоичное число с единицами в тех позициях, которые имеют степени числа 2.

Рассмотрим эту операцию подробно на примере числа 53. Переведём его в двоичную систему счисления. Сначала выделим из числа 53 наибольшую возможную степень числа 2, которая в ней “помещается”. Это 25 = 32. Действительно, следующая степень числа 2 — 26 = 64. Это больше 53. Вычитаем из исходного числа 53 выделенную степень числа 2: 53 = 32 + (53 - 32) = 25 + (53 - 32) = 25 + 21.

Все эти действия нужно делать быстро и в уме. Если это вызывает затруднения, рекомендуем использовать более надёжный способ деления уголком.

Затем нужно выделить из оставшегося числа (теперь это 21) снова наибольшую степень числа 2. 53 = 25 + 21 = 25 + 16 + (21 - 16) = 25 + 24 + 5. И так далее до тех пор, пока все число не будет разложено на сумму степеней числа 2. В данном случае: 53 = 25 + 24 + 4 + (5 - 4) = 25 + 24 + 22 + 1 = 25 + 24 + 22 + 20.

Когда все исходное число разложено на сумму степеней числа 2, нужно записать его в двоичном виде.

Мы предлагаем такой способ: начиная с самой большой степени числа 2, которая присутствует в числе, называть до нуля целые номера разрядов и записывать цифру 1, если такая степень числа 2 присутствует в сумме-разложении. Либо записывать цифру 0, если такая степень не присутствует.

В данном примере будем называть цифры 5, 4, 3, 2, 1,0. Для номеров разрядов 5, 4, 2, 0 сумма содержит степени числа 2. Для оставшихся номеров разрядов (3 и 1) — не содержит.

Получим итоговое число 1101012.

Это способ хорош для относительно небольшого размера чисел и в том случае, если подобные арифметические действия вы быстро и без ошибок делаете в уме.

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

Важно понимать, что системы счисления с основанием 2, 8 и 16 имеют особое, весьма важное, значение в информатике. Это связано с тем, что вся информация в компьютере хранится, обрабатывается и передаётся в двоичной системе счисления. Но запись чисел в двоичной системе счисления зачастую оказывается достаточно неудобной из-за того, что числа получаются весьма длинными. Чтобы сократить длину чисел и при этом сохранить запись в виде, из которого очень легко можно получить двоичную систему счисления, используется 8-ричная и 16-ричная системы счисления. О том, как быстро переводить числа из двоичной системы счисления в 8-ричную и 16-ричную и обратно, вы узнаете далее.

Возьмём некоторое двоичное число, например, 111112. В нём вес каждого разряда в два раза больше веса предыдущего разряда. Рассмотрим, разряд номер 1. Его вес — 21 = 2. Если рассмотреть разряд, на 2 позиции отстоящий от текущего (в данном случае, номер 3), его вес равен 23 = 8. При этом он в 4 раза больше разряда номер 1 (4 = 2 ∙ 2 = 22). А если рассмотреть разряд, на 3 позиции отстоящий от разряда номер 1 (разряд номер 4, его вес равен 24 = 16), его вес будет в 8 раз больше (8 = 2 ∙ 2 ∙ 2 = 23). Но ведь именно таким свойством — когда вес каждого разряда в 8 раз больше предыдущего — обладают числа, записанные в 8-ричной системе счисления. То есть, вес трёх подряд идущих двоичных разрядов как раз в 8 раз больше веса предыдущих трёх подряд идущих двоичных разрядов. Ровно так же, как вес соседних 8-ричных разрядов.

Из этих соображений получается правило для перевода числа из двоичной в восьмеричную систему счисления:

1) группируем разряды справа налево по три; если общее количество разрядов не кратно трём (самая левая группа оказывается неполной) — оставляем её такой (или дописываем слева нулями, это неважно);

2) каждую группу записываем как восьмеричную цифру;

3) полученные цифры записываем в том же порядке, что и группы, из которых они были получены.

Перевод чисел из двоичной в 16-ричную систему счисления происходит по такой же схеме. Несколько отличий:

1) так как число 16 — это четвёртая (а не третья, как число 8) степень числа 2, то и группировать двоичные разряды нужно по 4 (а не по 3, как при переводе в 8-ричную системы счисления);

2) важно понимать, что в процессе перевода должно получиться ровно столько цифр, сколько было получено групп разрядов.

Типичная ошибка — переведя 4 двоичных разряда в десятичную систему счисления, учащиеся забывают, что нужно вместо полученного десятичного числа, большего 9, записать не две десятичные цифры, а одну — соответствующую 16-ричную цифру.

В остальном процедура перевода двоичного числа в 16-ричную систему счисления полностью аналогична переводу двоичного числа в 8-ричную систему счисления.

Таблица соответствия первых 16-ти десятичных, двоичных, 8-ричных и 16-ричных чисел:

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

10-я

2-я

8-ричная

16-ричная

0

0

0

0

1

1

1

1

2

10

2

2

3

11

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

А

11

1011

13

В

12

1100

14

С

13

1101

15

D

14

1110

16

Е

15

1111

17

F

Перевод из 16-ричной системы счисления в двоичную систему счисления осуществляется по таким же правилам, что и перевод из 8-ричной системы счисления в двоичную. Единственное исключение — нужно каждую 16-ричную цифру заменять на 4 двоичные цифры (а не на 3 двоичные цифры, как при переводе из 8-ричной системы счисления).

Разбор типовых задач

Задача 1. Переведите число 101011102 в восьмеричную систему счисления.

Решение

Для начала группируем разряды справа налево, по 3 цифры: 10 101 1102.

Заметим, самая левая группа оказалась неполной. Это нормально.

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

Это можно сделать несколькими способами. Самый простой способ — знать наизусть все двоичные коды первых 16-ти чисел. Второй способ — воспользоваться таблицей, в которой приведено соответствие двоичных и восьмеричных чисел. Третий способ (если нет возможности воспользоваться первым и вторым способом) — перевести каждую группу двоичных цифр как отдельное двоичное число в десятичную систему счисления. Для цифр от 0 до 7 (которые могут в этом случае встретиться) десятичная и 8-ричная системы счисления совпадают.

Воспользуемся третьим способом. Переведём число 102. Нумеруем разряды: 102. Теперь складываем степени числа 2, при которых стоят цифры 1. В данном случае это 21 = 2.

Переведём число 1012. Нумеруем разряды: 1012. Складываем степени числа 2:22 + 20 = 4 + 1 = 5.

Переведём число 1102. Нумеруем разряды: 1102. Складываем степени числа 2: 22 + 21 = 4 + 2 = 6.

Выписываем полученные цифры в том же порядке. Получаем 2568.

Ответ: 2568.

Задача 2. Перевести число 11101011102 в шестнадцатеричную систему счисления.

Решение

Для начала группируем разряды справа налево по 4 цифры: 11 1010 11102. Заметим, самая левая группа оказалась неполной. Это нормально.

Теперь вместо каждой группы из трёх двоичных цифр (для левой группы — двух цифр) запишем соответствующую ей 16-ричную цифру.

Переведём число 112. Нумеруем разряды: Теперь складываем степени числа 2, при которых стоят цифры 1. В данном случае это 21 + 20 = 3.

Переведём число 10102. Нумеруем разряды: Складываем степени числа 2: 23 + 21 = 8 + 2 = 10. Записываем это в 16-ричном виде: 1010 = А16.

Переведём число 11102. Нумеруем разряды: Складываем степени числа 2: 23 + 22 + 21 = 8 + 4 + 2 = 14. Записываем это в 16-ричном виде: 1410 = Е16.

Выписываем полученные цифры в том же порядке. Получаем 3АЕ16.

Ответ: 3АЕ16.

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

Задача 3. Перевести число 6258 в двоичную систему счисления.

Решение

Каждую цифру исходного числа будем по отдельности переводить в двоичную систему счисления.

Это возможно сделать несколькими способами. Самый простой — знать, какому восьмеричному числу соответствует какое двоичное число. Другой способ — посмотреть в таблицу соответствия восьмеричных и двоичных чисел (см. стр. 25). Если же первые два способа вам недоступны (не знаете наизусть соответствия восьмеричных и двоичных чисел и не имеете под рукой таблицы соответствия), всегда остаётся третий способ (универсальный, но более медленный). Можно просто перевести каждое двоичное число уголком (или разложением на сумму степеней числа 2) в двоичную систему счисления.

В нашем случае, сначала переведём число 6. Разложим его на сумму степеней числа 2:

6 = 4 + 2 = 22 + 21 = 1102.

Теперь так же переведём цифру 2: 2 = 21 = 102.

Переведём оставшуюся цифру 5:

5 = 4 + 1 = 22 + 20 = 1012.

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

Внимание! Не допустите типичную ошибку. В частности, если делать “не задумываясь”, получится ответ 110101012. Этот ответ — неверный. Причина ошибки в том, что мы должны были вместо каждой восьмеричной цифры выписать 3 двоичные цифры! А мы вместо цифры 2 выписали только 2 цифры! Очень важно, чтобы каждая восьмеричная цифра была заменена именно на три двоичные цифры. Если цифр не хватает, обязательно дополните группу двоичных цифр слева нужным количеством нулей до трёх.

В данном случае, нужно было в середине записать не 10, а 010. Получаем ответ: 1100101012.

Ответ: 1100101012.

Задача 4. Перевести число 73Е16 в двоичную систему счисления.

Решение

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

Самый простой — знать, какому 16-ричному числу соответствует какое двоичное число. Другой способ — посмотреть в таблицу соответствия 16-ричных и двоичных чисел. Если же первые два способа недоступны (вы не знаете наизусть соответствия 16-ричных и двоичных чисел и не имеете под рукой таблицы соответствия), всегда остаётся третий способ (универсальный, но более медленный). Можно просто перевести каждое двоичное число уголком (или разложением на сумму степеней числа 2) в двоичную систему счисления.

В нашем случае, сначала переведём число 7.

Разложим его на сумму степеней числа 2:

6 = 4 + 2 + 1 = 22 + 21 + 20 = 1112.

Теперь переведём число 3.

Разложим его на сумму степеней числа 2:

3 = 2 + 1 = 21 + 20 = 112.

Переведём число Е. Вспомним, что Е — это число 14. Разложим его на сумму степеней числа 2:

14 = 8 + 6 = 23 + 4 + 2 = 23 + 22 + 21 = 11102.

Заметим, что просто записать теперь ответ, составив рядом полученные двоичные числа — неправильно. Каждую из 16-ричных чисел нужно записать как 4 двоичные цифры, а для наших цифр 7 и 3 это получилось не так. Соответственно, нужно добавить к обоим числам слева столько нулей, чтобы получилось 4 цифры.

Запишем полученные 4-значные двоичные цифры друг за другом в том порядке, в котором стоят соответствующие им 16-ричные цифры исходного числа. Получаем 0111 0011 1110. Первый незначащий ноль можно, не записывать.

Получаем 11100111110.

Ответ: 11100111110.

Так как цифра 7 исходного числа — первая цифра числа, то для него не обязательно выполнять правило, что каждая 16-ричная цифра исходного числа должна быть заменена ровно на 4 двоичные цифры.

Однако, именно эта ошибка — забыть добавить ведущие нули для не первых цифр числа — является основной ошибкой в подобных задачах. Поэтому мы рекомендуем помнить, что каждая 16-ричная цифра должна быть заманена на ровно 4 двоичные цифры, а уже потом не трудно убрать ведущие незначащие нули в ответе.