Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №19/2009


Только в номере

Системы счисления в изложении для младших школьников. Материал для ученика

Код Листика (двоично-десятичное кодирование)

Знакомство с Листиком

Изобретатель Листик придумал устройство для передачи чисел. Его прибор передавал сообщения в виде цепочки коротких и длинных сигналов. В своих записях Листик обозначал короткий сигнал цифрой “0”, а длинный — цифрой “1”. При передаче чисел он использовал для каждой цифры следующий код:

Число 12, состоящее из цифр 1 и 2, Листик записывал для передачи так:

00010010

Аппарат передавал это сообщение цепочкой таких сигналов: три коротких, один длинный, два коротких, один длинный и один короткий.

Число 77 по системе Листика кодировалось так:

01110111

Кодирование информации

Кодирование — это перевод информации в удобную для передачи или хранения форму.

Например, тексты кодируются с помощью букв и знаков препинания. При этом одна и та же запись может быть закодирована по-разному: по-русски, по-английски, по-китайски…

Числа кодируются с помощью цифр. Цифры, к которым мы привыкли, называются арабскими. Иногда пользуются римскими цифрами. В этом случае меняется способ кодирования информации. Например, 12 и XII — это разные способы записи одного и того же числа.

Музыку можно закодировать с помощью специальных знаков — нот. Дорожные знаки — это закодированные сообщения водителям и пешеходам при помощи пиктограмм.

Товары в магазине маркируют при помощи штрихкода, который содержит информацию о товаре и его производителе.

Штриховой код — это последовательность черных и белых полос, которая кодирует информацию в виде, удобном для считывания техническими устройствами. Кроме того, под штрихкодом может быть помещен код в виде ряда цифр.

Информация всегда хранится и передается в виде кодов. Нельзя хранить просто информацию, без носителя. Точно так же нельзя хранить и передавать просто информацию: она всегда имеет какую-то форму, то есть закодирована.

Двоичное кодирование

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

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

Примером двоичного устройства служит обычная электрическая лампочка. Она может находиться в одном из двух состояний: включена (состояние 1) или выключена (состояние 0).

Можно построить на лампочках электрическую память и хранить в ней, например, числа при помощи двоичного кода Листика.

Для хранения каждой десятичной цифры потребуется четыре лампочки. Вот так можно запомнить число 6:

Установили переключатели в нужное положение — и пошли пить чай! Если электричество не отключат, информация сохранится.

Электрические лампочки, конечно, не подходят для производства компьютеров: они большие, быстро перегорают, дорого стоят (их ведь нужны миллионы) и сильно нагревают окружающую среду.

В современных компьютерах в качестве элемента памяти используют электронное устройство — транзистор.

Транзистор может пропускать через себя ток (состояние 1) или нет (состояние 0).

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

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

Код, которым Листик кодировал сообщения, реально используется для работы с числами в компьютере.

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

Единица в коде на первом месте справа дает чис­-
ло 1, на втором — 2, на третьем — 4, на четвертом — 8. Для получения десятичной цифры числа складываются. Например, код “0101” переводится в цифру 5 (сумма чисел 4 и 1).

Этим же правилом можно пользоваться и при декодировании. Например, цифра 6 записывается как сумма чисел 4 и 2, значит, ее код будет “0110”.

Табличка с числами, записанными в системе счисления, которая использовалась в Древнем Вавилоне. Приблизительно 1700 г. до н.э. Расшифрована в 1945 г.

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

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

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

Так, число 102 кодом Листика записывается при помощи 12 двоичных знаков:

0001 0000 0010

Листик кодирует отдельно каждую из 10 цифр и использует для этого 4 двоичных знака. Но четырьмя двоичными знаками можно закодировать не 10, а 16 значений:

Получается, что 6 кодов Листика (а это больше половины из 10) пропадает впустую!

Можно ли кодировать экономнее?

Можно, если кодировать не цифры (из которых собирается число), а сразу числа! Так, число 102, при таком способе кодирования, можно записать не двенадцатью, а только семью двоичными знаками (экономим 5 цифр):

1100110

Такое кодирование будет рассмотрено в этом уроке. Но начнем по порядку.

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

Как вам известно, числа строят из цифр, а цифр всего десять, вот они:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Как же при помощи только десяти цифр записывают большие числа? Сейчас мы это увидим, но сначала запомним определение:

Способ записи чисел называют системой счисления.

Ученое слово счисление, созвучное со словом “вычисление”, уже означает “способ записи чисел”. Но математикам показалось, что фраза система счисления звучит лучше. Ничего, освоим и мы этот термин из двух слов! А теперь давайте разберемся с той системой счисления, к которой привыкли.

Посмотрите на число 253. В этой записи первая справа цифра (ее называют младшая цифра) означает “три единицы”, пятерка — “пять десятков”, а двойка (старшая цифра) — “две сотни”.

Получается: 253 = 2·100 + 5·10 + 3·1.

Мы говорим: “двести пятьдесят три”. Это означает число, которое получается сложением:

двух сотен (2·100 = двести),

пяти десятков (5·10 = пятьдесят) и

трех единиц (3·1 = три).

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

Младшая цифра означает единицы:

Вторая справа цифра означает десятки:

Третья справа цифра означает сотни:

Видим, что вклад цифры в число нарастает справа налево.

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

Привычная для нас система счисления является позиционной, как мы убедились. Заметим, что в основу ее положено число 10 — количество используемых цифр.

Младшая цифра показывает количество единиц в числе, вторая справа — количество десятков (1·10). Третья — показывает сотни (10·10), четвертая — тысячи (10·100) и так далее.

Мы считаем единицами, единицы складываются в десятки (десять единиц заменяются одним десятком), десятки — в сотни (десять десятков заменяются одной сотней) и так далее.

Число 10 положено в основу привычной системы счисления, поэтому ее называют десятичной системой, или системой счисления по основанию 10.

Посмотрите еще раз, как запись 2789 переводится в число.

Число получается сложением вкладов входящих в него цифр:

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

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

1. Множитель первой (справа) позиции равен 1.

2. Множитель каждой следующей позиции получается умножением основания системы (число 10) на множитель предыдущей позиции.

Множители позиций будем называть весами позиций, или позиционными весами.

Число равно сумме вкладов. Вклад равен произведению цифры на позиционный вес. Вес первой позиции равен 1, второй — 10, третьей — 100 и так далее. То есть вес каждой позиции (кроме первой) получается из веса предыдущей умножением на основание системы. Вес первой позиции равен единице.

Вот ведь как: умножали, складывали и не подозревали! Оказывается, мы записываем числа в позиционной системе счисления по основанию десять! Почему основание нашей системы равно 10? Ну, это понятно: ведь у нас 10 пальцев, удобно считать, загибая их по порядку.

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

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

В двоичной системе счисления всего две цифры:

0, 1.

Если в десятичной системе веса позиций получаются умножением на десять, то в двоичной — умножением на два:

Получается: 10112 = 1·2·4 + 0·2·2 + 1·2·1 + 1·1.

В двоичной системе считают единицами, единицы складываются в двойки (две единицы заменяются одной двойкой), двойки — в четверки (две двойки заменяются одной четверкой) и так далее.

Когда нужно уточнить, в какой системе записано число, к нему приписывают снизу основание системы:

10112 — число записано в двоичной системе счисления.

Нетрудно перевести его в десятичную систему, нужно просто выполнить операции умножения и сложения:

10112 = 1·2·4 + 0·2·2 + 1·2·1 + 1·1 =

= 1·8 + 0·4 + 1·2 + 1·1 = 1110.

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

В двоичной системе вклад единицы на первом месте справа есть число 1, на втором — 2, на третьем — 4, на четвертом — 8 и так далее. Вклады нулей, понятно, равны нулю независимо от их позиций.

Получаем такое правило:

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

Так, например, для числа 10111 получаем:

101112 = 16 + 4 + 2 + 1 = 2310.

Еще пример, число 100110:

1001102 = 32 + 4 + 2 = 3810.

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

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

Пусть нужно перевести в двоичную систему число 26. Подбираем по схеме начало двоичного числа (старшую цифру). 32 — это много, значит, начинаем с 16:

Часть исходного числа, а именно 16, закодирована, осталось закодировать 26 – 16 = 10. Берем 8 (наибольшее из возможных позиционных весов):

Осталось закодировать 10 – 8 = 2. Четыре — это много. Пишем в позицию 0 и берем 2:

Мы закодировали все число, значит, последняя цифра должна равняться нулю:

Получается: 2610 = 110102.

Правило перевода из десятичной системы в двоичную можно сформулировать следующим образом.

Для перевода в двоичную нужно построить шаблон с весами двоичных цифр:

Перевод числа выполняется по следующему алгоритму:

I. Повторять, пока число не обратится в ноль:

1. Записать 1 в первую слева позицию, вес которой не больше текущего числа.

2. Уменьшить текущее число на вес построенной единицы.

II. В позиции, не занятые единицами, записать нули.

Чтобы лучше понять этот алгоритм, поработайте на стенде Испытателя. Нажмите кнопку Сброс, наберите число. Затем нажимайте кнопку Пуск: вы увидите, как Испытатель выполняет алгоритм перевода числа в двоичную систему по шагам.

Обратите внимание: в записи алгоритма выделяется тот пункт, который будет выполнен после нажатия на кнопку Пуск. Например, если выделен пункт “Повторять, пока число не обратится в ноль”, то после нажатия на Пуск Испытатель проверит текущее число на равенство нулю и примет решение о продолжении повторения.

(Выполните работу с Испытателем на странице электронного приложения.)

Позиционные системы с другими основаниями

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

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

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

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

0, 1, 2.

В троичной системе считают единицами, единицы складываются в тройки (три единицы заменяются одной тройкой), тройки — в девятки (три тройки заменяются одной девяткой) и так далее.

Что интересно, в 1958 году под руководством Н.П. Брусенцова в Московском государственном университете был создан компьютер “Сетунь”, и он работал с числами не в двоичной, а в троичной системе счисления! Первый опытный экземпляр “Сетуни” показан на фото:

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

Обозначим на схеме позиционные вклады цифр в троичной системе счисления:

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

102123 = 1·81 + 2·9 + 1·3 + 2·1 = 10410.

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

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

Пусть нужно перевести в троичную систему число 196. Подбираем по схеме начало троичного числа. 243 — много, значит, начинаем с 81 и цифры 2 (2·81 < 196):

Часть исходного числа, а именно 162 = 2·81, закодирована, осталось закодировать 196 – 162 = 34. Берем 27 и цифру 1 (цифра 2 дает 54, а это слишком много):

Осталось закодировать 34 – 1·27 = 7. Позиция с весом 9 дает слишком много, записываем в нее 0 и берем позицию с весом 3 и цифрой 2:

Осталось закодировать 7 – 2·3 = 1. Это как раз значение оставшейся младшей цифры:

Получается: 19610 = 210213.

Позиционные системы: основные правила

Сформулируем общие правила построения чисел в позиционных системах счисления.

Число записывается цифрами, например:

3242

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

Позиции нумеруются справа налево. Вес первой позиции равен 1.

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

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

Основание системы показывает количество цифр, которое используется в данной системе. Так, в системе с основанием 10 — десять цифр, в системе с основанием 5 — пять цифр.

Рассмотрим пример. Если запись

3242

означает число в системе с основанием 5, то оно равно

32425 = 3·125 + 2·25 + 4·5 + 2·1 = 44710.

Та же запись в системе с основанием 6 означает число

32426 = 3·216 + 2·36 + 4·6 + 2·1 = 74610.

Непозиционные системы счисления

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

Использовались и более удобные способы счета: зарубки на палке, черточки на камне, узелки на веревке.

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

Это пример непозиционной единичной системы счисления: для счета используется одна цифра (камень, палочка, косточка, черточка, узелок…), и вклад этой цифры не зависит от ее места (позиции), он всегда равен одной единице.

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

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

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

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

Рассмотрим несколько примеров.

Сложение

5 + 7 = 12. В младший разряд пишем 2, а единицу добавляем к следующему разряду.

Построим таблицу восьмеричного сложения:

По таблице сложения 5 + 7 = 148. В младший разряд пишем 4, а единицу добавляем к следующему разряду.

Вычитание

Занимаем 1 во втором разряде и отнимаем 7 от числа 15. Аналогично в восьмеричной системе:

Занимаем 1 во втором разряде и отнимаем 7 от числа 158. По таблице сложения в строке 7 находим число 15. Номер соответствующего столбца дает результат разности — цифру 6.

Вот, наверное, удобно паукам использовать
восьмеричную систему счисления!

Умножение

2·7 =14. Пишем 4, а 1 идет на “ум” (добавить к следующему разряду). 4·7 = 28. Пишем 9 (8 плюс 1 из “ума”) и 2 переносим в следующий разряд.

Построим таблицу восьмеричного умножения:

2·7 = 168. Пишем 6, а 1 идет на “ум” (добавить к следующему разряду). 4·7= 348. Пишем 5 (4 плюс 1 из “ума”) и 3 переносим в следующий разряд.

Деление

3·5 < 17 < 4·5, поэтому первая цифра результата — 3. Из 17 вычитаем 5·3 = 15. К разности 2 приписываем цифру 5, получается 25. 25 = 5 ·5. Из 25 вычитаем 25=5·5, получается 0 — деление закончено.

В таблице умножения в строке 5 находим подходящее число 178 = 5·3:

Значит, первая цифра результата — 3. Из 178 вычитаем 178 = 5·3. К разности 0 приписываем последнюю цифру 5. 5 = 5· 1. Из 5 вычитаем 5, получается 0 — деление закончено.

Вопросы

1. Дайте определение термину “система счисления”.

2. Дайте определение термину “позиционная система счисления”.

3. Объясните принципы построения чисел в десятичной системе счисления на примере числа 548.

4. Что называют весом позиции? Расскажите алгоритм нахождения веса позиции. Чему равен вес третьей справа позиции в десятичной записи числа? А в двоичной? А в троичной?

5. Что понимают под разрядом? В каком разряде расположена цифра 5 в десятичном числе 1532?

6. Что называют вкладом цифры? Чему равен вклад цифры 7 в числе 174510? А вклад цифры 4 в числе 14325?

7. Дайте определение термину “основание позиционной системы счисления”. Как связано основание системы с количеством цифр в этой системе? Сколько цифр в 5-ричной системе счисления? А в 16-ричной? А в системе с основанием 25?

8. На каком месте в записи числа располагается младшая цифра? А старшая?

9. Расскажите алгоритм перевода двоичного числа в десятичную систему счисления и выполните этот алгоритм для числа 1011012.

10. Расскажите алгоритм перевода десятичного числа в двоичную систему счисления и выполните этот алгоритм для числа 5010.

11. Как перевести число из любой позиционной системы счисления в десятичную систему? Объяснение постройте на примере системы с основанием 4.

Домашние задания

Вариант 1. Выполняется без компьютера, “на бумаге”

1. Прочитайте скороговорки, заменяя двоичные числа десятичными:

Съел молодец
1000012 пирога с пирогом,
Да все с творогом.

Шли 1010002 мышей,
Несли 1010002 грошей,
А 102 мыши поплоше
Несли по 102 гроша.

2. Разгадайте двоично-буквенные ребусы:

1100100 Л

101000 А

СВИ 1100100 К

10001 плюс 11001 равно 101010

3. Выполните вычисления и запишите ответ в десятичной системе счисления:

1) 1002·58 =

2) 1003 + 1005 =

3) 109·10100 – 10900 =

4) 334 + 445 =

5) 156 + 518 =

4. Переведите заданные числа в указанные системы счисления:

Число10

Число5

Число4

Число3

Число2

0

1

2

3

4

5

9

16

25

32

64

Вариант 2. Выполняется на компьютере

1. Запишите арифметическое выражение для решения следующей задачи и подсчитайте ответ:

Наша умница Мальвина
Опекает Буратино
И купила для него,
Что ему нужней всего:
102 обложки, 112 линейки
И на 1112 рублей наклейки.
На обложках — Бармалей,
Цена каждой — 1012 рублей.
На линейки, что купила,
1010102 рубля хватило.
Сколько стоили покупки?
На раздумье — полминутки.

2. Попробуйте использовать стандартную программу Калькулятор для перевода чисел из стихотворения в привычную десятичную запись (Вид — Инженерный, Bin — двоичное представление числа, Dec — десятичное представление числа). Запишите алгоритмы перевода чисел с помощью Калькулятора из двоичного представления в десятичное и наоборот, из десятичного — в двоичное.

Вариант 3. Для любознательных

1. Докажите, что запись 10 в любой позиционной системе счисления означает число, равное основанию этой системы.

2. Определите основание позиционной системы счисления b для каждого равенства:

1) 10b = 5010;

2) 11b = 610;

3) 100b = 6410;

4) 101b = 2610;

5) 50b = 3010;

6) 99b = 90910;

7) 21b = 156;

8) 10b = 100b;

9) 12b = 22b;

10) 14b·b = 104b.

p ALIGN="JUSTIFY">3. Шестнадцатеричная система счисления использует 16 цифр. Первые десять цифр совпадают с цифрами десятичной системы, а последние обозначаются буквами латинского алфавита:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Цифра

Значение

A

10

B

11

C

12

D

13

E

14

F

15

Переведем, например, в десятичную систему число A816:

A816 = 10·16 + 8·1 = 16810.

В каждом задании найдите значение числа x:

1) 2516 = x10; 4) 17010 = x16;

2) AB16 = x10; 5) 256910 = x16;

3) FD16 = x10; 6) 8032 = x16.

4. Выполните следующие задания.

1) Найдите вес третьей позиции в записи числа, если известно, что вес второй позиции равен 7. Нумерация позиций справа налево.

2) Система счисления использует 5 цифр. Найдите вес четвертой справа позиции в записи числа.

3) Число записано в виде двух единиц: 11. В какой системе счисления оно записано, если в десятичной оно равно 21?

4) В некой системе счисления число выглядит как 100. Сколько цифр использует эта система счисления, если в десятичной системе число равно 2500?

5) Два числа записаны как 100, но в системах с разным основанием. Известно, что основание первой системы в два раза больше основания второй. Какое число больше и во сколько раз?

6) Найти основание системы, если известно, что число 101, записанное в этой системе, означает десятичное число 37.

7) В какой системе счисления для удвоения числа нужно дописать справа к его записи ноль?

8) Умножить на 10 в десятичной системе — значит дописать справа к числу ноль. Сформулируйте правило умножения на 10b в системе с основанием b.

5. Сформулируйте алгоритм перевода числа из десятичной в троичную систему счисления.

6. Постройте таблицы сложения и умножения для четверичной системы счисления. Пользуясь этими таблицами, выполните столбиком следующие дейст­вия над числами (оставаясь в четверичной системе счисления):

1. а) 10214 + 3334;

б) 33334 + 32104;

2. а) 3214 – 1234;

б) 10004 – 3234;

3. а) 134·124;

б) 3024·234;

4. а) 11234:134;

б) 1120034:1014.

7. Постройте таблицы сложения и умножения для двоичной системы счисления. Пользуясь этими таблицами, выполните столбиком следующие действия над числами (оставаясь в двоичной системе счисления):

1. а) 10012 + 10102;

б) 101112 + 11102;

2. а) 11102 – 1012;

б) 100002 – 1112;

3. а) 1012·112;

б) 11102·1012;

4. а) 10001102:1012;

б) 1000001002:11012.

Практикум

На страницах электронного приложения поработайте с исполнителем Кодировщик.

13-2.gif (28588 bytes)

Упражнения содержат следующие группы заданий:

В десятичную

1. Из двоичной в десятичную

2. Из троичной в десятичную

3. Из пятеричной в десятичную

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

Из десятичной

1. Из десятичной в двоичную

2. Из десятичной в троичную

3. Из десятичной в пятеричную

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

Зачетный класс 1

1. 112 = ? 10

2. 11012 = ? 10

3. 111012 = ? 10

4. 2610 = ? 2

5. 2710 = ? 2

6. 1410 = ? 2

7. 213 = ? 10

8. 223 = ? 10

9. 2210 = ? 3

10. 1010 = ? 3

Зачетный класс 2

1. 11002 = ? 3

2. 1113 = ? 2

3. 124 = ? 5

4. 215 = ? 4

5. 204 = ? 2

6. 11002 = ? 4

7. 128 = ? 2

8. 1012 = ? 8

9. B16 = ? 2

10. 10012 = ? 16

Материал для учителя

Позиционные системы счисления

В позиционной системе счисления число записывают в виде цепочки специальных символов:

anan–1 ... a2a1 (1)

Символы ai называют цифрами. Они обозначают порядковые счетные количества, начиная с нуля и до значения на единицу меньшего числа q, называемого основанием системы счисления. То есть, если q — основание, то значения цифр лежат в интервале [0, q–1] (включая границы).

Положение цифры в записи числа (1) называют ее позицией, или разрядом.

Замечание 1. На этих страницах предпочтение отдается термину “позиция”. Во-первых, слово “позиция” хорошо согласуется с понятием “позиционная система счисления”, во-вторых, термин “позиционный вес” или “вес позиции” звучит лучше, понятнее и проще, чем “разрядный вес” или “вес разряда”. Однако учитель может и должен время от времени напоминать ученикам, что “позиция” и “разряд” — эквивалентные термины.

Замечание 2. Определение позиционной системы счисления, данное в текстах для ученика, не совсем точное. Одной только зависимости вклада цифры от позиции недостаточно. Например, в римской системе счисления вклад цифры также зависит от позиции (числа IV и VI — разные), но эта система не является позиционной. Точным определением можно считать всю совокупность правил построения числа, приведенную в данном контексте для учителя (то есть, наряду с фактом позиционной зависимости в определение входят: конечность множества цифр и правило нахождения числа по его записи).

Позиции нумеруются справа налево. Цифру, расположенную в первой позиции, называют младшей цифрой числа, в последней — старшей.

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

Веса позиций определяются по следующему рекурсивному правилу:

1. Вес младшей позиции равен 1.

2. Вес каждой следующей позиции получается из веса предыдущей умножением на основание системы.

Пусть q — основание системы счисления. Тогда правило для вычисления позиционных весов wi можно записать более кратко в виде рекуррентной формулы:

1. w1 = 1.

2. wi = wi–1·q (для всех i > 1).

В позиционной системе счисления запись

anan–1 ... a2a1 (1)

означает число N, равное сумме произведений цифр на их позиционные веса:

N = an·wn + an–1·wn–1 + ... + a2·w2 + a1·w1. (2)

Произведение цифры на ее позиционный вес (то есть ai·wi) будем называть позиционным вкладом цифры.

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

В десятичной системе счисления числа записываются при помощи десяти арабских знаков: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Позиционные веса этой системы: ..., 1000, 100, 10, 1.

Запись 4627, например, “расшифровывается” так:

462710 = 4·1000 + 6·100 + 2·10 + 7·1.

В двоичной системе счисления числа записываются при помощи двух арабских знаков: 0 и 1. Позиционные веса этой системы: ..., 256, 128, 64, 32, 16, 8, 4, 2, 1.

Например, запись 10101 “расшифровывается” так:

101012 = 1·16 + 0·8 + 1·4 + 0·2 + 1·1.

Заметим, что из рекурсивного правила вычисления весов вытекает, что wi = qi–1 и, следовательно, запись (2) эквивалентна традиционной записи в виде степенного многочлена:

N = an·qn–1 + an–1·qn–2 + ... + a2·q + a1. (3)

Докажем это по индукции. База индукции при i = 1 проверяется непосредственно: w1 = q0 = 1.

Индукционное предположение: пусть утверждение справедливо при некотором n:

wn = qn–1.

Докажем, что оно будет справедливо и при n + 1.
То есть докажем справедливость равенства:

wn+1 = qn.

В самом деле, wn+1 = wn·q (по рекурсивному определению веса позиции), а wn = qn–1 по индукционному предположению. Получается:

wn+1 = wn·q = qn–1·q = qn.

Докажем, что любое число представимо в форме (1) (теорема 1) единственным образом (теорема 2).

Теорема 1 (существование). Любое число m можно представить в форме (1) при любом q > 1.

Доказательство. Докажем по индукции. Для m = 0
и m = 1 легко построить нужное представление — это соответственно 0 и 1 (при любом q > 1). Допустим, нам удалось представить число m в форме (1). Найдем тогда представление для m + 1. Для этого достаточно преобразовать сумму

an·qn–1 + an–1·qn–2 + ... + a2·q + a1 + 1 к форме (1).

Если a1 < (q–1), то нужное представление получается заменой цифры a1 на a'1 = a1 + 1.

Если a1 = (q–1), получаем перенос единицы в следующую позицию:

an·qn F–1 + an–1·qn–2 + ... + (a2 + 1)·q + 0.

Далее рассуждаем аналогично. Если a2 < (q–1), то нужное представление получается заменой цифры a2 на a'2 = a2 + 1. Если a2 = (q–1), то a2 заменяем нулем и переносим единицу в следующую позицию.

Либо на каком-то i < n мы закончим построение, либо получим запись 1000...0 — единицу и n нулей справа. Доказательство завершено.

Перед теоремой 2 докажем лемму.

Лемма. Вклад каждой ненулевой цифры в записи (1) превышает сумму вкладов цифр, расположенных правее нее.

anan–1 ... a2a1. (1)

Доказательство. Докажем, что при любом n > 1:

an·qn–1 > an–1·qn–2 + ... + a2·q + a1.

Цифры ai лежат в интервале [0, q–1], значит, достаточно доказать неравенство при наименьшей ненулевой цифре в левой части и максимальных цифрах в правой:

qn–1 > (q–1)·qn–2 + ... + (q–1)·q + (q–1).

В правой части выносим множитель (q–1) за скобку:

(q–1)·qn–2 + ... + (q–1)·q + (q–1) =

= (q–1)·(qn–2 + ... + q + 1).

Сумму геометрической прогрессии в последней скобке вычислим по известной формуле:

(q–1)·(qn–2 + ... + q + 1) =

= (q–1)·(qn–1–1)/(q–1) = qn–1 – 1.

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

qn–1 > qn–1 – 1.

Теорема 2 (единственность). Число в форме (1) представляется единственным способом.

Доказательство. Из леммы следует, что числа, имеющие в своей записи разное количество цифр (незначащие нули слева не учитываются), не могут быть равными: число с большим количеством цифр всегда больше. Значит, нужно только доказать, что если ai не равно bi для всех i от 1 до n, то записи

anan–1 ... a2a1 (4)

bnbn–1 ... b2b1 (5)

не могут обозначать одно и то же число.

Просмотрим записи (4) и (5) слева направо в поисках несовпадающих цифр. Пусть это будут ak и bk и пусть akbk = d.

На k-м месте в записи обнаружилась разница в d·qk–1. Эта разница должна компенсироваться вкладами позиций, расположенных правее. Но это невозможно, так как по лемме сумма вкладов позиций, расположенных правее, всегда меньше вклада текущей позиции. Теорема доказана.

Перевод в десятичную

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

N = an·wn + an–1·wn–1 + ... + a2·w2 + a1·w1 (2)

При переводе из двоичной системы задействовано только сложение (ибо на 1 можно не умножать). Таким образом, получаем правило перевода, сформулированное в Читальном зале:

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

Так, например, для числа 10111 получаем:

 

101112 = 16 + 4 + 2 + 1 = 2310

Общее правило перевода из q-ичной системы в десятичную звучит так:

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

Так, например, для числа 102123 получаем:

 

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

102123 = 1·81 + 2·9 + 1·3 + 2·1 = 10410.

Перевод в q-ичную

Для перевода чисел из десятичной системы в систему с основанием q будем по-прежнему опираться на формулу (2):

N = an·wn + an–1·wn–1 + ... + a2·w2 + a1·w1. (2)

Алгоритм перевода.

I. Повторять, пока число не обратится в ноль:

1. Найти первую слева позицию, вес которой не больше текущего числа. Записать в позицию максимально возможную цифру, такую, при которой ее позиционный вклад (произведение цифры на вес) не превышает текущего числа.

2. Уменьшить текущее число на вклад построенной позиции.

II. В позиции, не занятые построенными цифрами, записать нули.

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

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

Для перевода в двоичную нужно построить шаблон с весами двоичных цифр:

 

Перевод числа выполняется по следующему алгоритму:

I. Повторять, пока число не обратится в ноль:

1. Записать 1 в первую слева позицию, вес которой не больше текущего числа.

2. Уменьшить текущее число на вес построенной единицы.

II. В позиции, не занятые единицами, записать нули.

Такой способ перевода на практике оказывается гораздо проще и быстрее традиционного алгоритма с нахождением остатков.

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

Цифра 2

Цифра 1

позиция 729

1458

729

позиция 243

486

243

позиция 81

162

81

позиция 27

54

27

позиция 9

18

9

позиция 3

6

3

позиция 1

2

1

 

Скажем, вклад цифры 2 в позиции 243 — число 486, а в позиции 9 — число 18.

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

Для примера переведем в троичную систему число 183. Подходящее значение расположено в третьей строке и первом столбце:

Цифра 2

Цифра 1

позиция 729

1458

729

позиция 243

486

243

позиция 81

162

81

позиция 27

54

27

позиция 9

18

9

позиция 3

6

3

позиция 1

2

1

 

Значит, троичное число начинается цифрой 2:

18310 = 2????3

Далее работаем с числом 183–162 = 21:

18310 = 202??3

Для числа 21–18 = 3 в таблице есть точное значение, перевод закончен:

18310 = 202103.

Для систем с большим основанием соответствующие таблицы будут, конечно, объемнее. Построим в качестве последнего примера таблицу для перевода в шестнадцатеричную систему счисления:

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

4096

8192

4096

256

3840

3570

3315

3060

2805

2550

2295

2040

1785

1530

1275

1020

765

510

256

16

240

224

208

192

176

160

144

128

112

96

80

64

48

32

16

1

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

 

Пусть нужно перевести в шестнадцатеричную систему число 4255. Ищем в таблице (слева направо по строкам, начиная сверху) первое число, которое окажется не больше исходного числа 4255:

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

4096

8192

4096

256

3840

3570

3315

3060

2805

2550

2295

2040

1785

1530

1275

1020

765

510

256

16

240

224

208

192

176

160

144

128

112

96

80

64

48

32

16

1

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

 

Получаем первую цифру 1 в позиции 4096:

Осталось закодировать 4255 – 4096 = 159.

Строку 256 пропускаем (соответствующая цифра будет 0), а в строке 16 находим подходящее значение 144:

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

4096

8192

4096

256

3840

3570

3315

3060

2805

2550

2295

2040

1785

1530

1275

1020

765

510

256

16

240

224

208

192

176

160

144

128

112

96

80

64

48

32

16

1

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

 

Получаем цифры в позициях 256 и 16:

 

Осталось закодировать 159 – 144 = 15. Понятно, что это значение младшей цифры:

 

Получается: 425510 = 109F16.

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

Этот раздел представлен в материале для ученика схематично, в ознакомительном порядке.

Теме можно посвятить отдельный, большой и достаточно интересный урок, но материала и так получилось много — трудно объять необъятное!

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

Раздел поддержан домашними заданиями варианта 3. Эти упражнения можно рекомендовать любознательным школьникам в качестве индивидуальных заданий.

А.. А.. Дуванов,
г. Переславль-Залесский

TopList