В школьной информатике эта тема первая и, казалось бы, самая простая. Я предлагаю несколько практических рецептов, которые помогут освоить её, если вы ещё не успели выучить, что туда а что сюда. Подойдёт эта статья и тем, кто уже выучил, но сразу забыл.
Классические алгоритмы
Обычно ими дело и ограничивается. Учитель даже может показать вывод или иное теоретическое обоснование алгоритмам деления с остатком, вычитания, умножения на степени. Их я трогать не буду, о них уже сказано и написано столько, что даже ленивый найдёт. И повторять учителя я не намерен.
Первоосновы
Задача информатики - записать любую информацию.
От этого посыла и будем отталкиваться.
Числа - невнятная вещь, в простом смысле, отражающая количество предметов. Вот их записывать и будем. Цифрами.
Практика
Давайте подготовимся к практике. Вам стоит запастись пуговицами, гайками, шайбами, болтами и прочими мелочами разного размера. Нам надо три-четыре размера по 20-30 предметов каждого. Итого 60-120 предметов. Монеты не подойдут! На них написаны цифры. Карандаш, резинка и тетрадный лист в крупную клетку. Вот именно хорошо в крупную, обычная школьная не удобная будет, там в клеточку трудно впихнуть 2-3 цифры.
Запаслись? Я для определённости запасусь болтами, гайками и шайбами. Договоримся о правилах "размена":
- Болт>гайки>шайбы. Болт ценнее гайки, а гайка ценнее шайбы.
- Есть порог размена, который в каждой задаче мы будем устанавливать свой. Это такое количество предметов, которое можно заменить на более ценный или, наоборот, которое можно получить за один ценный.
- Размен можно осуществлять в любое время и в любом направлении, но только на один шаг (нельзя разменивать сразу шайбы на болты, только через гайки).
- В размене участвует только один ценный предмет. (Например, нельзя обменять сразу две гайки на шайбы, только по очереди)
Идём дальше.
Напишите цифры. Каждой цифрой мы будем обозначать соответствующее количество предметов одной ценности.
- 0
. - 1
: - 2
:. - 3
:: - 4
::. - 5
::: - 6
:::. - 7
:::: - 8
::::. - 9
::::: - A
:::::. - B
:::::: - C
И так далее. До бесконечности.
Заметили, что после девятки ряд продолжают "буквы"? Так надо, чтобы одним знаком записать любое количество.
Правила записи:
- Перед записью надо обязательно обменять дешёвые предметы на дорогие, если это возможно.
- Для записи используем цифры (см. выше), например, если у вас есть 11 гаек, пишите букву B.
- Запись ведётся всех имеющихся предметов справа налево. Сначала пишем шайбы (самые дешёвые), левее пишем гайки, и с самого лева - болты.
- Справа внизу пишем порог размена.
Счёт по порядку
Десятичная система.
Установим порог размена на 10. То есть, десять шайб можно заменить на одну гайку, десять гаек - на один болт. И в обратном направлении тоже.
Берите по одной шайбе, каждый раз записывая в столбик количество по правилам.
Одну шайбу заменить нельзя, я оставлю её и запишу
Возьму ещё одну. Тоже без размена.
И так до
Теперь беру ещё одну шайбу. Чтобы записать 10 шайб у меня есть буква A,
но предварительно я обязан заменить 10 шайб на одну гайку (наконец у меня есть нужное количество для размена). Теперь у меня нет болтов, одна гайка и нет шайб
ещё шайба
и ещё одна
И так далее. Можно остановиться еще через 10-15 ходов. Ничего нового уже не будет, главное, не забыть разменять шайбы на гайку, когда их снова 10 штук наберётся. Сбрасываем все, что насобирали обратно.
Восьмеричная система.
Ставим порог размена на 8. Теперь мы будем разменивать уже 8 шайб на гайку, и 8 гаек на болт.
Снова берём шайбы по одной и записываем в новый столбик рядом:
Берём ещё одну, получаем 8 шайб. Их мы смело меняем на одну гайку:
Заметьте, что написано "010", но у нас не десять шайб, а восемь. Одна гайка теперь "стоит" как 8 шайб
Продолжаем:
Самостоятельно попытайтесь сделать это с порогами обмена 5, 3, 7, 2 и 16. В комментариях пишите, что получилось.
Пояснение
Порог обмена на самом деле принято называть основанием системы счисления. Это ключевое число, оно показывает очень много чего. Например, обратили внимание, сколько в каждои столбике используется разных цифр? Считается, что если Вы выбрали основание, то Вы полностью задали и систему счисления. Запись числа обязательно требует, чтобы основание было известно. Потому что по записи 021 не понятно, то ли Вы 2 раза по 10 шайб заменили, то ли по 8.
В восьмеричной системе "023" будет значить, что Вы взяли 19 шайб и два раза заменили 8 шайб на 1 гайку. Еще раз
Девятнадцать шайб записываем как "23"
Если поменять условие - задать порог размена в 6, то запись будет "31".
Перевод между системами
Расшифрую фразу. При переводе из одной системы счисления в другую, Вы должны взять запись с одним порогом размена, определить, сколько там изначально шайб и записать с другим порогом размена.
Выполним перевод числа из 12тиричной системы счисления в девятиричную.
Что эта запись означает? Что надо взять 2 гайки и 11 шайб (цифра C означает 11).
Теперь определим, сколько это в шайбах. Порог размена у нас 12, значит за одну гайку дают 12 шайб. А у нас две гайки, они "стоят" как 24 шайбы. И ещё 11 было. Итого 35 шайб.
Теперь их надо записать с порогом размена 9. Каждые 9 шайб меняем на одну гайку. Сколько раз получается? 3 раза. И ещё остались 8 шайб. Больше менять нечего. Запишем:
Пара дней тренировок - и будете уже быстро переводить "короткие" числа. Когда речь зайдёт о больших числах, гайки не помогут - не напасёшься. Но для этого есть куча способов в интернете.
Тем не менее, я к этим способам ещё свой добавлю.
Зададимся порогом в 7. Сколько шайб стоит гайка? 7. А сколько шайб будет стоить болт? 7 гаек по 7 шайб каждая. То есть 49 шайб. А если возьмём более весомый предмет? Саморез, например. Он будет стоить 7 болтов, по 49 шайб, или 343 шайбы. Вес следующего предмета растёт в 7 раз по сравнению с предыдущим.
Такая запись значит:
Тут не трудно догадаться, что вообще во всех числах, которые мы записываем цифрами, вообще-то зашифрованы действия! Обычное число 176 означает 1 сотня, 7 десятков и 6 единиц. В других системах счисления (например с картинки сверху) 4 значат уже не 4 десятка, а 4 семёрки. В этом случае можно называть их семиричными десятками.
Такая запись, как на рисунке сверху даёт очень и очень широкие возможности по переводу из десятичной системы и обратно в десятичную. А самое главное, что других переводов и не требуется! всегда можно обойтись только этими двумя. Ну, в крайнем случае, переводить в два этапа: в десятичную, потом в другую.
Если выполнить действия, которые записаны под ней, то получим сколько всего шайб у нас есть. Это 815 в десятичной системе. То есть, перевод уже прямо написан на листе, осталось только сложить!
Перевод из десятичной делается практически аналогично. Приведу пример:
Надо перевести число 538 из десятичной в восьмеричную.
Веса разрядов (будем вместо болтов и гаек уже писать правильно) соответственно
...4096, 512, 64, 8, 1 - каждый следующий в 8 раз больше предыдущего
Не знаю, как вам, а мне видно, что 4096 в 538 ни разу не поместится. А вот 512 поместится один раз и ещё останется. Остаток будет 26. В 26 64 ни разу не влезет, а вот 8ка влезет трижды. И ещё останется 2 раза по одному.
ответ 01032
Нули слева обычно не пишут, поэтому
1032.
PS
Получилось довольно громоздко и вместе с тем скомкано, но тема и в самом деле большая. Если что-то не понятно, обязательно спрашивайте в комментариях!
Позже напишу статью про действия в позиционных системах счисления.