Что же это, чёрт возьми, такое, как работают нули-единицы, и кто и зачем это вообще придумал.

Начинаю серию статей с простым объяснением всяких фундаментальных вещей с иллюстрациями. Школьнику, которого учитель информатики заставляет переводить числа туда-сюда, а он вообще не врубается, что происходит. Дизайнеру, который не знает, что значит цвет #FFDD00. Тем, кто всё знает, но не против ещё раз укрепить модель.

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

Жил-был древний человек.

И были у него овцы.

И решил он однажды посчитать, сколько у него овец. Но считать ещё не умел.

Древний человек придумал оставлять засечки на камне. Одна засечка — одна овца. Когда рождается овца, человек рисовал засечку, когда умирала — стирал.

И жил так прекрасно древний человек, пока не поумнел и не решил узнать что-нибудь об окружающем его мире. И захотел он посчитать количество звёзд на небе — тем же способом.

И умер.

Это, конечно, такой естественный отбор был. Человек должен с копьём на кабана охотиться, а не звёзды считать.

Потом были древние римляне. Их было много, поэтому, очевидно, были те, кто поумнее, и все остальные. Последние охотились на кабана с копьём, а умные считали добычу и столкнулись с той же проблемой, что и древний человек.

И они подумали: «а давайте нарисуем ещё больше разных закорючек, и они будут кратко обозначать большие числа».

И придумали, что эти закорючки будут такими:

V = IIIII,
X = VV,
L = XXXXX,
C = LL,
D = CCCCC,
M = DD.

Ещё они придумали хитрые правила, чтобы, например, вместо VIIII писать IX, но для простоты повествования мы про эти правила забудем.

И смогли римляне посчитать, что средняя продолжительность жизни — лет L, а звёзд на небе видно примерно MMD. Им этого хватало.

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

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

Заметьте, что во всех предыдущих способах записи закорючки (цифры), стоящие рядом, просто складываются. Если древний человек написал II, это значит «I засечка и ещё I засечка». Если римлянин написал VII, это значит буквально IIIII + I + I, то есть IIIIIII.

Умный человек (горе ему) придумал вот что:

  1. Пусть у нас будет сколько-то закорючек, например, X (здесь и дальше X — римская цифра, а не «неизвестное»). Позвал знакомого араба, сказал ему: «придумай мне X закорючек». Араб почесал репу и нарисовал: 0123456789.

  1. Пусть 0 означает «ничего», а каждая следующая цифра сама по себе означает число, больше предыдущего на 1.

А дальше вообще отвал башки.

  1. Пусть чем раньше в числе стоит цифра, тем большую «значимость» она имеет. Если цифра стоит в конце, она значит ровно столько, сколько написано. Если она на втором месте с конца, её собственное значение умножается на X. Если на третьем месте, то умножается на X и ещё раз на X, и так далее.

Например, если написано 456, то это значит не 4 + 5 + 6, а

4 * X * X + 5 * X + 6.

И понял умный человек, что цифра X ему больше особо и не нужна, потому что X — это 1 * X + 0, а значит записывается в новой системе как «10».

Ещё раз хочу обратить ваше внимание, насколько это неочевидная система — почему нужно ещё умножать цифры на что-то? почему нельзя просто, чтобы 4 значило 4? почему 4 в числе 456 обозначает 400? Но мы с вами выросли на этой системе, поэтому принимаем её за данность.

Таким образом, запись 456 означает 4 * 10 * 10 + 5 * 10 + 6. Какой-то другой умный человек придумал степени, и стало можно вместо 10 * 10 писать 10 ^ 2, вместо 10 * 10 * 10 писать 10 ^ 3 и так далее.

Немного терминологии, чтобы привязать знания к реальности.

  1. Система счисления — это способ записывать количество какими-то чёрточками. Способ подсчёта овец древним человеком — система счисления. Запись чисел с помощью V, X и M римлянами — система счисления. Новый и прогрессивный способ, придуманный умным человеком, — тоже.

  2. Непозиционная система счисления — та, где от положения цифры её значение не меняется. Древний человек придумал именно такую систему — I всегда значит I.

  3. Позиционная система счисления — та, где, наоборот, положение цифры влияет на её значение. Такую систему изобрёл умный человек. Например, в числе 456 цифра 4 означает 400, а в числе 546 — всего 40.

  4. Основание системы счисления — общее количество закорючек (цифр) в ней. Умный человек придумал систему счисления с основанием X (в этой системе, в свою очередь, X записывается как 10).

  5. Разряд — положение цифры в числе.

Что будет, если изменить основание системы счисления, например, на 2?

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

Переведём число 1010 из системы счисления с основанием 2 (то есть, из двоичной системы счисления) в нашу, десятичную. Чтобы не было путаницы, основание системы счисления обычно записывают после числа в нижнем регистре.

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

Тогда:

1010 = 0 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 0 + 2 + 0 + 8 = 10.

Выходит, 1010 в двоичной системе счисления обозначает такое же количество, какое 10 — в нашей, десятичной.

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

Например, загибая пальцы рук, можно посчитать от 00000 00000 до 11111 11111, если принять левый мизинец за старший разряд, а правый мизинец — за младший, нулевой. Получается, в переводе на десятичную систему счисления на пальцах можно посчитать от нуля до 1023.

Первое, на что я хочу обратить внимание, — основание системы счисления в этой же системе всегда записывается как «10». В двоичной системе счисления число 2 записывается как «10», потому что 1 * 2 + 0 = 2. В шестнадцатеричной системе счисления число 16 записывается как «10», потому что 1 * 16 + 0 = 16. Ну вы поняли.

В связи с этим есть мем:

Инопланетянин говорит, что камней «10», потому что использует систему счисления с основанием 4 по-нашему. В его системе счисления наше «4» записывается как раз как «10». А что такое «4», инопланетянин вообще не знает, потому что у него цифры 0, 1, 2 и 3.

Кстати, про шестнадцатеричную систему счисления. Десять привычных нам цифр уже есть, а где ещё шесть взять? Да давайте просто возьмём ещё шесть букв. После 9 идёт A, потом B, потом C, D, E, F, и только потом — 10. Получается, что последние цифробуквы шестнадцатеричной системы счисления переводятся в десятичную так:

A = 10,
B = 11,
C = 12,
D = 13,
E = 14,
F = 15.

И последнее на сегодня — для дизайнеров. Что означает запись #FFDD00 для цвета? Наверняка вы знаете, что каждый пиксель на экране состоит из трёх лампочек — красного, зелёного и синего цвета, а все остальные цвета получаются смешиванием этих трёх в разной пропорции.

Каждая из лампочек может светить с условной яркостью от 0 до 255. #FFDD00 — это три числа: FF, DD и 00, где каждое число обозначает яркость каждой лампочки.

FF = 15 * 16 + 15 = 255.
DD = 13 * 16 + 13 = 221.
00 = 0.

Получается, красная лампочка включена на все 255, зелёная на 221, а синяя полностью выключена.

#FFFFFF — все лампочки горят на максимум и дают белый цвет. #000000 — все выключены, чёрный цвет.

Вот так, короче.

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

Подписывайтесь на меня в Твиттере: https://twitter.com/adam_arutyunov

А ещё есть канал — «Адам Арутюнов поднимается до мидла». В нём — вы не поверите. t.me/cdarr

Комментарии (23)


  1. vilgeforce
    15.02.2022 12:13
    +13

    Попытка раскрутки бессмысленного телеграм канала при помощи поста сомнительного качества? Нуну


  1. amarao
    15.02.2022 12:39
    +2

    арабский ٥ - это "5". Любой, кто был в Эмиратах или в СА знает, что на сдачу могут выдать ٥ дирхам.


  1. BkmzSpb
    15.02.2022 12:45
    +5

    Единственная 'глубокая' 'философская' мысль поста - 'Every base is base 10' (я об этом раньше не задумывался), все остальное слишком притянуто и упрощено.


  1. MichaelProtector
    15.02.2022 13:24
    +4

    Из этого можно было бы сделать хороший конспект для урока младшим классам. Но после этого предложения мысль повествования теряется:

    Что будет, если изменить основание системы счисления, например, на 2?

    Почему 2? Почему не 3, не 5 и не 8? Вся сказка про древнего и умного человека испаряется в момент


    1. berez
      15.02.2022 13:50
      +17

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

      Нет.
      В статье полностью игнорируется реальная история систем счисления. Например, первая известная позиционная система счисления — вавилонская 60-ричная. Арабские цифры придумали не арабы, а индийцы — арабы только позаимствовали их. И много что еще.

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


  1. andranick
    15.02.2022 13:33
    +3

    Чет мне вторая иллюстрация (с овцами и сердечком) напомнила древнюю игрушку Sven Bomwollen. Спасибо, автор, заставили вспомнить юные годы! :)


  1. Whh
    15.02.2022 15:10
    -1

    я может совсем туп, но как в двоичной системе появляются нечётные числа если и 0 и 1 всегда умножаются на 2.


    1. cdarr Автор
      15.02.2022 15:10
      +2

      2 ^ 0 = 1.


  1. andrejjm78
    15.02.2022 15:10

    Надо еще непозиционные системы счисления рассмотреть. Кажется, в 80х годах это направление закрыли, но с этими системами счисления компьютеры вроде пошустрее считали, как это ни парадоксально. Хотя точно не знаю.


  1. PhHaas
    15.02.2022 17:43

    Это так не работает (в моём мозгу). 2-10;4-100;8-1000;16-10000 и тд... мне так проще было понять.


  1. Myclass
    15.02.2022 19:08
    +1

    Это не арабские цифры. Они пришли из Индии. Просто использовали в арабских книгах по математике, которые до нас длшли.


  1. Myclass
    15.02.2022 19:10
    +2

    Мой ваи совет- оставьте это дело. Не лежит вам оно.


  1. ZekaVasch
    16.02.2022 03:57

    Адам, сколько вам лет и когда будете заканчивать школу?


  1. Myclass
    16.02.2022 04:55
    +1

    Во первых никакого указания, что например часы в системе 24, минуты и секунды в 60.

    Нет упоминания теоретического обоснования от Лейбница, нет практического упоминания Конрад Цузе и его машины на реле, которое только два состояния и понимает - открыто/закрыто.

    Короче - неинтересно и непонятно


  1. habropaul
    16.02.2022 08:51
    -1

    Отличный пост. Давно ищу годные туториалы по вкатыванию в математику для тех, кто в своё время упустил азы этой прекрасной науки. Жаль, что для вас это нехарактерный жанр! Получилось замечательно.


  1. iozhukov
    16.02.2022 10:37
    +2

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

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

    Желаю автору статьи продолжать развиваться.


    1. Myclass
      16.02.2022 12:10

      у вас и те, кто не хочет погружаться в дебри — зануды. те, кто пишет претензии к качеству статьи — тоже зануды. Какое-то ограниченное представление о людях. Не замечаете?

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

      Вы правда уверены, что пример с тремя лампачками кем-либо будет понят, что сли все три будут на яркость включены, то будет белый свет? А я думаю — что будут три яркие лампочки — красная, зелёная и синия. (наверное я так думаю от занудства — ведь таких как я — вы насквозь видите)


      1. iozhukov
        16.02.2022 14:49

        у вас и те, кто не хочет погружаться в дебри — зануды

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

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

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

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

        Не самое определение зануды получается. Т.к. придирчивость породила что-то новое, а пыталась исправлять старое.

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

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


        1. berez
          16.02.2022 15:14

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

          Знаете, есть популяризация (например, научпоп — научно-популярное), а есть профанация.

          Популяризация — это когда некие знания рассказываются простым и понятным языком. При этом всякие тонкости, глубинности и излишества или не упоминаются, или упоминаются вскользь. Так вот, в работе популяризатора главное — это именно найти баланс: что нужно рассказать, о чем достаточно упоминания вскользь, и о чем вообще говорить не надо. Умение складно рассказывать и весело шутить — это плюс, но это не главное.

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

          У автора статьи мы видим нечто среднее: с одной стороны, он молодец — налицо явная попытка популярно изложить основы научного знания. Но с другой стороны, почти во всех второстепенных вопросах автор несет самую настоящую ересь. Какие-то рассказы о «придумывании закорючек», какие-то «знакомые арабы»… Автор половину статьи излагает нам историю возникновения различных систем счисления, но при этом с реальностью эта «история» не связана никак — т.е. по сути это самая настоящая профанация.


          1. iozhukov
            16.02.2022 15:23
            +1

            Да второстепенные моменты здесь плохо отражены и много не точностей.
            Но и никто вас не просил это воспринимать как образовательный материал. Мне было приятно за чаем это почитать, не смотря, на крайне очевидные мифы. Т.к я учел момент из шапки:

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

            Также, а как автор должен словить "баланс", если нет практики?
            Вот все недовольные за минусуют, автора и что тогда? Убили желание, светлое стремление. Ничто не проходит бесследно.
            Важно помогать расти друг другу, а не вопить, что кто-то не прав.


            1. berez
              16.02.2022 15:59

              Но и никто вас не просил это воспринимать как образовательный материал.

              Это образовательный материал независимо от моего восприятия и чьих-то просьб. Автор об этом сообщает в самой первой строке:
              «Начинаю серию статей с простым объяснением всяких фундаментальных вещей с иллюстрациями».


              Мне было приятно за чаем это почитать, не смотря, на крайне очевидные мифы.

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

              Я к тому, что сказки — это сказки, а научпоп — это научпоп. Не надо их путать, а то потом вырастают плоскоземельцы, фоменковцы и прочие поклонники альтернативщины.

              Также, а как автор должен словить «баланс», если нет практики?

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

              У автора, как мы видим, подход совсем другой: обратную связь он не просит, публикуется сразу на ресурсе с большой аудиторией, в своем телеграм-канале просит статью «шерить». Т.е. автор себя начинающим не считает.

              Вот все недовольные за минусуют, автора и что тогда? Убили желание, светлое стремление. Ничто не проходит бесследно.

              С одной стороны — да.
              А с другой стороны — возможно, тем самым мы спасем от профанации множество людей.

              И если уж начистоту, лично мне автор не кажется тем, кто при первых же неудачах складывает лапки и горько плачет. У него твиттер, у него канал в телеге, у него планов громадье на будущие статьи.

              Важно помогать расти друг другу, а не вопить, что кто-то не прав.

              Некоторые вещи нужно сначала остановить, а уже потом помогать друг другу.

              Что касается помощи — нельзя помочь тому, кто помощи не хочет. Я надеюсь, автор прочитает комментарии, сделает для себя выводы, и его следующие статьи будут прекрасны. Тем более, что предпосылки для этого есть: хороший, легкий слог, ненапряжный юмор, иллюстрации…


  1. Travisw
    16.02.2022 16:29

    Все было очевидно, но остановились на самом интересном моменте, будет ли продолжение?


  1. Anarchist
    17.02.2022 12:45

    Хорошая статья, если без занудства. Кстати, позиционные системы не ограничиваются вариантами 0, 1, ... N. Троичную систему можно записать цифрами -1, 0, 1 (подобное сработает для любого простого основания). В таких случаях система становится по-своему удобной. Была даже как минимум одна реализация - Сетунь. Примерно полвека назад, если мне не изменяет память.