Прийшов час осідлати справжнього Буцефала🏇🏻Приборкай норовливого коня разом з Newxel🏇🏻Умови на сайті
×Закрыть

В помощь учителю. Системы счисления

Поразительно, насколько низок уровень обучения базовым вещам. По идее, в школе на уроках информатики должны обучать принципам работы с информацией — и таким образом подготавливать ученика к миру 21 века. Ведь гораздо легче войти в IT, если в школе тебе хорошо объяснили базовые понятия касательно обработки информации.

Именно в расчете на это многие правительства спонсируют обучение программированию в школе — и чем раньше, тем лучше.

Сегодня уроки программирования вводятся в младших классах многих развитых стран мира (США, Канада, Китай, Объединённое королевство и т.д.). У нас тоже думают в эту сторону, вот даже результаты социологического исследования 2019 года показывают, что 83.8% за то, что предмет «Программирование» нужно вводить в школьную программу.

Но дьявол же, зараза, кроется в деталях.

Давайте не будем рассматривать совсем тривиальные темы, типа «подготовка презентаций в программе MS PowerPoint» с контрольными вопросами уровня «как расшифровывается MS?», потому что это к программированию отношения не имеет.

Рассмотрим базовую задачу школы (а иногда и университета) — подготовка по вопросу «системы счисления и их применение».

Мой критерий успешности обучения таков. У любого ученика сначала возникает вопрос «зачем?» — и, если интересно, то еще и «как?». Если ученик получает ответ на оба вопроса, то он легко осваивает тему, а полученные знания и навыки считает «своими» — они его усиливают. Если он по какому-то вопросу ответа не получил, то тема идет тяжело и быстро забывается, ученик думает плохое и про преподавателя, и про себя, а вся эта тема его «ослабляет» (например, «Интегралы? Помню, в школе мучили. Фу, гадость!»).

Чтобы проверить, понял ученик тему «системы счисления» или нет, я задаю всего 2 вопроса:

  1. Если считать в двоичной системе, какое число идет после 111.
  2. Переведи в уме двоичное число 1010 в десятичное — сколько будет?

Если отвечает быстро и уверенно — значит он правда уловил суть, ибо оба вопроса элементарны для того, кто ПОНЯЛ, и сложны для того, кто просто ЗАУЧИЛ.

Что в обычной школе

В школе идут путем классического объяснения математического аппарата. Например, перевод десятичного числа в двоичную форму делается через множественное нахождение остатка после деления на 2.

Я считаю, что это совсем неочевидный способ — если еще можно объяснить, почему происходит именно деление на 2 (потому что переводим в двоичную систему), но уже трудно объяснить, почему полученные остатки потом нужно будет записать задом наперед.

А если непонятно, то и не интересно. А если неинтересно, то и запоминать тяжело. В реальности ученик посмотрит на это все, сделает вывод «Ну и жесть!» и применять это не будет. Плюс про себя подумает «я ничего не могу понять». Получается, школа слабенько отвечает на вопрос «как», и практически не отвечает на вопрос «зачем».

Ладно, идем дальше.

Пробуем онлайн-курсы

Идём на «Прометеус» — там в курсе по программированию на Питоне касаются этой темы (таймкод 11:00).

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

Ну хорошо, ну может распиаренный американский курс по компьютерным наукам CS50 поможет? Смотрим (таймкод 3:00).

Американский парнишка просто вам говорит, что «0 это 0», «1 это 1», а потом будет 10, потом 11. Понятно?

Вот спросите не-программиста, а следующее число какое? Отож.

Принцип переноса разряда проскочили, и все, уже непонятно.

Что мы предлагаем

В общем, мы решили взяться за эту проблему и качественно её раскрыть — сняли несколько роликов практически по каждой из подтем:

  • как понять принцип «системы счисления» (это основная проблема);
  • как переводить одни системы счисления в другие;
  • где это все применяется на практике.

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

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

Повествование начинается сразу с вставки из кино — в фильме «Земное ядро» хакер говорит военным: «Вот вы знаете 5 языков, а я всего один — нули и единицы, но его хватит, чтобы украсть все ваши деньги в любое время из любой точки мира».

Это и есть первое «зачем».

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

Вот тут и происходит магия. До ученика доходит, и вот он уже, представляя себе одометр, мысленно крутит колёсики и говорит: 0, 1, 10, 11, 100.

Есть контакт.

Но мы идём дальше. Показываем биты на пальцах.

Все пальцы сжаты — это 0.

Оттопырен большой палец — это 1.

Оттопырен только указательный палец, а большой сжат — это 10 (десятичное 2).

Оттопырены указательный и большой пальцы — это 11 (десятичное 3).

«А теперь покажите следующее число (десятичное 4)», — говорю я тихо, потому что сейчас будет ураган эмоций.

Я пробовал это на «живых» детях — это непередаваемое ощущение, когда весь класс медленно, сосредоточенно оттопыривает средние пальцы, при этом у отличниц округляются глаза из-за смешанных чувств между «это правильный ответ!» и «о боже, что я делаю?!», а пацаны на задней парте тыкают друг другу в лицо факами и орут «На 4! На 4!».

Провокативно? Может быть.

Поняли они материал? Однозначно да.

2. Шестнадцатеричная система счисления

Когда двоичная система счисления понятна, то идем в другую сторону — не уменьшаем «алфавит», а наоборот добавляем новые цифры.

И сразу даем несколько ответов на вопрос «зачем».

Во-первых, это RGB-кодирование цветов — а ну-ка, давайте в CSS поменяем синий цвет шапки Фейсбука на желтый?

Во-вторых, на примере фильма «Марсианин» разбираем, как Метт Деймон общался с базой на земле с помощью поворотов камеры наблюдения — именно за счет кодировки символов в 16-ричных символах. А это уже хороший задел на тему «Кодирование символов» по школьной программе.

3. Перевод чисел из 2-чной в 10-чную систему счисления

Обе большие темы (перевод из 2 в 10чную — и обратно) разбираем сначала по-школьному медленно, а потом по-нашему — на пальцах и быстро.

Из двоичной в десятичную систему в школе переводят вот так:

А мы учим делать это практически мгновенно вот так:

4. Перевод из 10-чной системы счисления в 2-чную

Обратная операция «по-правильному» делается вообще неприлично долго:

Мы же сначала предлагаем подучить степени двойки, играя в бесплатную игру «2048» на телефоне (да, игры могут быть частью обучения), а потом опять же переводить быстро — на пальцах:

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

Дальше темы обзорные — применение трех систем счисления в жизни (закрепление с помощью ответа на вопрос «зачем»).

5. Применение 2-чной системы счисления в реальной жизни

Почему бы не рассказать о QR-кодах как применении двоичной системы? Там даже защита от повреждений встроена (лишняя информация для восстановления).

Показываем, как фраза «Zero to hero» перемалывается в биты, а потом в картинку с довольно сложной структурой.

5. Применение 16-чной системы счисления в реальной жизни

16-ричная система — самая ёмкая, поэтому её используют для кодирования чего-то большого. Например, для записи MD5-хеша при скачивании фильма или UUID-хеша для нумерации объектов.

6. Применение 8-чной системы счисления и права доступа к файлу

Тут просто — объясняем что такое права «755» для файла в Линуксе. Если придется заливать файлы по FTP (а файлы статистики сейчас лихо гоняют уже даже маркетологи) — будут понимать, что это за штука.

В книге «Искусство объяснять» говорится, что хорошее объяснение снижает цену, которую платит ваш клиент за понимание. Увы, обычные учебные заведения мало пытаются эту цену снизить — потому что это сложно.

А мы пробуем. Получилось или нет — напишите в комментариях. Пользуйтесь на здоровье.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

и вот из-за этих пальцев стоило возвращаться с Дании? :)

Тут было подробно рассказано о плюсах и минусах
dou.ua/...​a/tags/в Данию и обратно

что за нелепое обесценивание

теперь каждый школьник будет знать какому жесту соответствует число 00100
но вот сколько это в десятичной системе — уже не каждый

теперь каждый школьник будет знать какому жесту соответствует число 00100

mission fucking accomplished!

Программирование не нужно в школьной программе. Эта потребность — очень временный всплеск. Как когда-то считалось, что в школьной программе нужна математика выше арифметики — реальный мир быстро доказал нулевую полезность, но встала другая — КАК ВООБЩЕ избавиться от параллельного мира бюрократии общего образования?

Я знаю одно решение — простое и эффективное как хозяйственное мыло: ОТМЕНИТЬ государственную программу среднего образования, как и обязательность оного. Да, оставить бесплатным. Сделать доступным в любом возрасте, включая онлайн. А ВУЗы.... а вот пусть как хотят адаптируются! ВУЗы призваны давать высшее образование, а дают по сути среднее. Школа не даёт практически ничего кроме обучения работать под принуждением, служить власти, и делать бесполезные вещи потому что так сказали.

Система счисления — очень простая сущность, объясняемая за 1 урок или 1 статью. Видео здесь полезно только для закрепления материала, но сам материал должен быть текстами и картинками. Этот урок можно дать в 4-5 классе школы. Можно и раньше.

Читал Азимова «Профессия»? Рекомендую, короткий рассказик, написанный в середине прошлого века. Этот дядька реально смотрел в завтрашний день :)

сам материал должен быть текстами и картинками

почему прям «должен быть»?

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

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

Школа учит работать под принуждением? Отлично. А что дальше человеку делать?
Если он не умеет работать под принуждением, он пойдёт воровать или сдохнет от голода.

Само-занятых, само-мотивированных всего 5%. Остальные стадо, которым надо управлять для их-же блага.

слава богу, что не все активные — иначе быстро разнесли бы планету нафик :)

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

Что и требуется? Люди УЖЕ СЕЙЧАС тупые и ленивые. И уже опустились. И попытка их учить насильно ничего кроме иммунитета к образованию не формирует. Если бы тебя 12 лет кормили манной кашей — ты бы её ненавидел. А здесь тебя ещё принуждают её готовить.

Собственно говоря, нам и нужны эти 5%, и только их обучение надо финансировать. А остальным — ровно в той мере, в котором это ЗАПРОСИЛИ.

Мой критерий успешности обучения таков. У любого ученика сначала возникает вопрос «зачем?» — и, если интересно, то еще и «как?».
Повествование начинается сразу с вставки из кино — в фильме «Земное ядро» хакер говорит военным: «Вот вы знаете 5 языков, а я всего один — нули и единицы, но его хватит, чтобы украсть все ваши деньги в любое время из любой точки мира».
Это и есть первое «зачем».

Штош.

вы используете цитату из фильма, как ответ на вопрос «зачем? как это может пригодиться?»? или там кусок текста пропал при оформлении статьи?

используем цитату из фильма. Это какой-то не такой ответ на вопрос «зачем?»

Эта тема раскрыта в книге Чарльза Петцольда «Код». Я тут тоже пробую себя в видеокурсах, хочу посмотреть что из этого получиться, и рассказываю об этом тут youtu.be/...​pIgnyz7xQeKSAZVXtj0&t=413
Сам же считаю что знать конечно стоит, но тратить много времени на это не стоит. Так как на практике может не пригодится. Это чисто для себя нужно знать. Или же если специфическая область.

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

на самом деле запомнить таблицу из 16 значений не сложно

школьники как-то же таблицу умножения из 100 элементов запоминают, а тут всего 16

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

Мне вот интересно, у многих в ежедневной работе встречаются задачи, для которых надо вообще понимать что такое двоичная система?))))

да

да — это в смысле «у многих»?

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

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

Лично я изучал системы счисления в пятом классе по популярной математической литературе, а-ля книга Фомина вообще 1980 год. И никаких проблем не было. Не говоря о том, что тему можно развивать, например троичная система счисления со знаками для −1, 0, +1, где можно описывать вместе числа со знаком и без. Системы счисления с комплексным основанием, ... Вообще, часто чтобы в чём-то разобраться, мне лучше зачерпнуть материала немного глубже, чем требуется...

UPD: Нашёл книгу, www.twirpx.com/file/298758
Ковриженко Г.А. Системы счисления и двоичная арифметика. От счета на пальцах до ЭВМ
Читается легко даже для школьников 5-го класса.

И я об том. Количество обсуждающих расстраивает.

в целом я согласен, вопрос только во времени. Как я написал

хорошее объяснение снижает цену, которую платит ваш клиент за понимание.

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

А с чего Вы взяли, что ваши видео хорошие и помогут разобораться в теме?

Вся статья пиар про то, что Вы нашли, как Вам кажется, объяснить сущность того, что такое система счисления. Я в этом не уверен. И вообще, надежда это худшее из зол, потому как она продлевает мучения. И пассаж «хорошее объяснение снижает цену, которую платит ваш клиент за понимание» мне к этой ситуации непонятен, потому что вряд ли книенту нужно вникать в системы счисления. А если надо, он must have.

Вся статья пиар про то, что Вы нашли, как Вам кажется, объяснить сущность того, что такое система счисления.

Сущность арифметики вся в аксиомах Пеано. Остальное правила грамматики.

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

Ты даже не поднимал тему перевода иррациональных чисел из одной системы в другую. Где математические операции в системах по основанию 2? Неплохо разобраться в теме — это «хапануть» по верхам.

Ты просто границы темы расширил, так не честно. Иррациональных чисел, ага.

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

Ты просто границы темы расширил, так не честно.

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

Это у Вас какая-то сильно жесткая школа была)))

Очень жесткая — ftl.kherson.ua , только сейчас начинаешь понимать насколько.

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

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

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

Отличное объяснение на примере одометра, покажу сыну.

наконец-то первый комментарий реально по теме поста!

Одометр — это замечательно, но это жуткий архаизм, которое молодое поколение видело только в музеях, как и дисковый телефон. Больше времени надо потратить объясняя что это такое. Следующим вопросом, для тех, кто живёт за границей будет, а почему лок для локера так не работает — это единственное устройство, которое имеет архаичные колёсики: cdn11.bigcommerce.com/...​28419.jpg?c=2&imbypass=on

всё тебе не так... Видео смотрел-то?
youtu.be/RcxvcLl1nAs?t=75
Это достаточно новая машина, чтобы иллюстрировать на ней одометр?
Ну и Жигулей в нашей стране всё ещё много...
И в самолете когда садишься, стюардесса щёлкает одометром, глазами считая людей.
Нормальная система, узбагойся

Это достаточно новая машина, чтобы иллюстрировать на ней одометр?

Это далеко не типичная машина.

Нормальная система, узбагойся

А я тебе говорю, что нет, дети её не понимают.

типичная — не типичная — оценочные суждения. У нас много машин на дорогах с одометрами.
А ребенку представить крутящиеся колёски проще, чем попробовать понять, почему вдруг после 11 идет 100.

В детстве разобрал какой-то заводской счетчик, там было много шестерней и колес с цифрами. С тех пор «перенос разряда» для меня не абстракция, а флажок, который щелкал каждый раз, как колесо делало оборот, зацепляя колесо следущего разряда. Для визуализации одометр кажется очень хорошим примером.

трудно объяснить, почему полученные остатки потом нужно будет записать задом наперед

метод Горнера. в случае чего, способ самопроверки — точно так же делается в десятичной системе

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

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

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

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

Говно вопрос. На него минут 10 достаточно потратить. Причем больше из истории появления арабской письменности. До этого были системы 7-миричные, 60-ти ричные, Римские цифры и 12-тиричные.. Имеющий мозги поймет. Не имеющего и напрягать нет смысла.

всё не так просто.
Например, 60-ти ричные — не система счисления: мы говорим «59» минут, то есть у нас 5 десятков и 9 единиц. Если бы была 60ричная система, был бы отдельный значок цифры вместо «59». А так это просто десятичная система счисления.

Римские цифры — вообще не позиционные.

Поэтому я бы не торопился так утверждать.

Все правильно. Вот для развития и надо все это рассказать. И причины возникновения всех этих систем.

был бы отдельный значок цифры вместо

Осталось собрать машину времени, выучить шумерский и отправиться рассказывать допотопным клинописцам что они недостаточно оригинально цифры рисовали.
Шестидесятиричность определяется не количеством уникальных значков, а из используемого порядка, для обозначения составных цифр и дробей. Вавилоняне, насколько нам известно, отталкивались от цифры 60. То есть условное "----||"(42) для них было однозначным числом, а "- ---||"(632: 60*10 + 32) — двухзначным.

От цифры 12 они отталкивалися. 60 это их «дроби».
С какого перепугу они взяли за основу 3,12, 60 — никто не знает.

Почему не знает? Так считали время. Диаметр солнца в сутки укладывался 60 раз.

Диаметр Солнца 31′59″. Как именно он ровно 60 раз укладывается?

Это не ко мне. Так посчитали в древности. Видимо считали светлую часть суток и как-то усредняли.

Я читал, что число 60 было выбрано по астрономическим (читай, календарным и аграрным) причинам. Там совпадали периоды появления 2 важных звезд, у одной 12 чего-то там (дней или лет, не помню уже), у другой — 15. Число 60 объединяло оба периода.

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

Правильный ответ — никто точно не знает. не так уж много табличек вообще переведено.
А это все и выше — гипотезы современных человеков.
Вот 10 еще более менее понятно, и то логичнее рассматривать 5 или 20.

Потому что эти числа делятся на 2, 3, 4 и 5 без остатка. Кроме того если посмотреть на Луну, то выделяются 4 ее четверти и четверть около 7 дней. И получается месяц. В году 12 месяцев. 13 очень неудобно.

ага. а почему именно четверьти а не половинки или третинки?
Все это вообще неочевидно.

а не половинки или третинки
делятся на 2, 3

я не точно выразился. Да, это система счисления, но это не позиционная система счисления.

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

60-ти ричные

Если бы это была 60-тиричная система счисления, то 60ричное число «55» можно было бы перевести в десятичное как 5*60 + 5 = 305. А тут такого нет, мы просто говорим «55 минут» понимая это как число 55.

Если бы это была 60-тиричная система счисления, тогда да, нам нужны были бы отдельные значки цифр.

Если бы это была 60-тиричная система счисления, то 60ричное число «55» можно было бы перевести в десятичное как 5*60 + 5 = 305.

ЧТО?

посмотрите видео в посте, будет понятнее.

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

ну можно и не переходить на личности, а сказать, где именно я, по-вашему, просчитался.
60-ричное число «55» в десятичной системе счисления — сколько будет?

60-ричное число «55» в десятичной системе счисления — сколько будет?

Пример ничего не демонстрирует. Надо спрашивать сколько будет 110 в 60-тиричной системе. )) Тогда разница будет видна

Там не 60, а 5×12. В Шумере было 12ричная, делили на 12 все, а на руке у них было 5 пальцев. Потому дальше поделили еще на 5.
И часов по той же причине 12 два раза(день и ночь).

мы про это мало учим и нам особо не рассказывают, хотя у американцев и англичан по прежнему в ходу дюймы и дюжины и пенни. Самый для меня интерестный факт — это возможность разделить 12 на 2, 3, 4 и 6. В тоже время 10тичная система без остатка позволяет разделить только на 2 и на 5. В мобильной связи давно перестали использовать 2ую систему, там применяют фазовое кодирование которое позволяет запихнуть больше данных в единицу информации, но компьютерные системы почему то остались на 2х.

Что значит «почемуто». Вот тут мы как раз в курсе, почему. Троичная логика использовалась, например, в СССР. Она требовала в разы больше транзисторов, а транзистор — основная строительная единица современного компьютера.
Был бы другой элемент, была бы другая система.

Сложность организации 3-ичной логики относительно 2-ичной.
А так выбор был целые около числа e. А почему е — в началах теории информации рассказывается.

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

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

Так это уже давно есть, всякие высокоскоростные interconnect bus давно построены по этому принципу. Смотри аппаратные сериалайзеры и десириалайзеры для передачи сигнала.

но на их концах всё равно двоичные сигналы входят и выходят, тут товарищ вообще везде фазовое кодирование предлагает по ходу :)

да подожди еще два годика, мы уже прошли цикл разгона до 4.5 гигагерц (лет 8 назад) потом мы ушли в энергосбережение (последние 8 лет), теперь мы пошли в 8 и 12 ядер для ноутбуков, еще где то 2а цикла (наверно 16 ядер и еще что то) и мы уткнемся в тупик, тогда и притащат новые виды хранения и обрабоки информации.

Хранение и передача на большие расстояния уже давно есть, но как ты себе представляешь обработку информации?

ну наверно бедет 4 уровня сигнала- 0, +0,5, +1 и +1.5, что сразу дает прирост производительности в полтора раза

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

16-ричная система — самая ёмкая, поэтому её используют для кодирования чего-то большого.

А Base64 не более ёмкая? :P

Какое отношение прогрессивный JPEG имеет к системам счисления

Какое отношение Base64 имеет к системам счисления?

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

кодирования данных... путем представления их в системе счисления c основанием 64.

Не нужно путать эти вещи.

Да, Base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII, но — на каждые 3 исходных байта нужно 4 символа. Это НЕ система счисления.

Иначе тогда и UTF-8 это система счисления.

а чтобы отобразить один байт в шестнадцатеричной системе, нужно два символа ASCII

ну окей, а как маппинг в бейз64 производится, не переводом между системами счисления? В чем отличие от хексов, их представление с помощью a, b, c и т.д. — тоже кодирование

я думаю ответ вот где: если два числа можно сложить, то это система счисления. Две записи base64 можно складывать-вычитать? Думаю нет.

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

А кольори представлені в шістнадцятковому коді можна додавати? Якщо так то можна додавати дані в base64.

це ніяк не пов’язано.
Кольори можна складати — червоний (FF0000) + зелений (00FF00) = жовтий (FFFF00).
Тому що це числа.

А base64 ні — тому що це не число, а повідомлення (я навіть не кажу, що там в повідомленні є маркери кінця у вигляді знака «=»). Не можна скласти «Vasyl» + «Danyliuk» і отримати нове слово («VasylDanyliuk» не рахується — це не складання чисел, а контатенація, це інше).

Не можна складати повідомлення як числа, це немає сенсу.

Іншими словами: якщо у нас було б base64-число АА, то ліве А було б в 64 рази більше, ніж праве А (також як в десятковому числі 11 ліва одиниця в 10 разів більше правої). У base64 такого немає.

Але побудувати систему числення на 64 символах цілком можна — просто тоді це буде не кодування base64, а просто 64-річна система числення.

Це все просто питання інтерпретації. Будь які дані можна представити як в 16 так і в 64 і будь якій іншій системі. А чи можна додавати/віднімати визначається тільки тим як ми сприймаємо ці дані. Якщо сприймаємо як числа то можна. З кольорами як бачимо також пройшло. А якісь хеші, наприклад, які в шістнадцятковій формі додавати сенсу зовсім нема як і текстові дані закодовані в base64. А от числа закодовані в base64 чудово додаються.
До речі в АА перша А справді не більша за другу, але тільки тому що А це нуль. А от ВВ це вже 65 тобто перша В 64, а друга 1.

мне лень опять объяснять.
Вы путаете число и сообщение.

А от числа закодовані в base64 чудово додаються

64-разрядые числа — да.
base64-код — нет.

16-ричное число длиной 32 символа — да.
хеш — нет.

двоичное число — да.
двоичный код ZIP-архива — нет.

Как вам еще объяснить?

64-разрядые числа — да.
base64-код — нет.

А як ви розрізните?
От ВВВВ це число 266305 чи просто якісь 3 байти даних? Чому я не можу додати два таких числа якщо знаю що хтось справді закодував таким чином числа? Я можу це зробити в стовпчик по тим же правилах як і з 10 системою.
Звісно base64 придумали зовсім не для того щоб числа передавати але якщо захотіти то можна і це робити.

контекст і є різниця. Навіщо складувати, скажем, двійковий код двох ZIP-архивів як числа? Немає сенсу.

base64 не можна складати тому ще там є маркер кінця. Назва «base64» говорить, що це кодування, не число.

Ну так і я про те ж. Якщо я знаю що мені в емейлі хтось надіслав число закодоване в base64 бо так менше символів то цілком можу додати це число до ще одного такого ж.
Але ви праві, це придумано не для того.

Якщо я знаю що мені в емейлі хтось надіслав число закодоване в base64 бо так менше символів то цілком можу додати це число до ще одного такого ж.

Чё то я не понял как ты собираешься это сделать, учитывая тот факт, что у тебя в алфавите Base64 на самом деле не 64, а 65 символов — включая заполнитель «=». Давай на примере, что ли?

Вот два примера кодировки из RFC:
0×14fb9c03d97e => FPucA9l+
0×14fb9c03d9 => FPucA9k=

Мы вполне можем трактовать исходные бинарники как числа, так же? То есть мы можем вполне их сложить. Прикинул на счетах, получается 0×14fb9c03d97e + 0×14fb9c03d9 = 0×1510979fdd57. Конвертим это в Base64, получаем FRCXn91X

Смотри, даже в столбик запишу

FPucA9l+
FPucA9k=
--------
FRCXn91X
Видишь, какая шляпа? Заполнитель в младших разрядах — это не ноль, то есть ты его не можешь посто так взять и «сложить поразрядно», как мог бы сделать в позиционной системе с любым основанием...

Мушу погодитись. Я недостатньо розумів це кодування. Воно справді не підходить для чисел.

Назва «base64» говорить, що це кодування, не число.

ну взагалі назва «base64» прямо таки буквально перекладається як «64-ова система числення», просто так склалось історично, шо так почали називати популярну схему кодування тексту

base64

«Base 64» — так, погоджусь, це «64-ова система числення»
«base64» — ні, це вже система кодування, «бренд».

«Кока та кола» — дві рослини або їх плоди.
«Кока-кола» — бренд, в якому напевно вже немає ні коки, ні коли :)

Ще ремарка: всі ці системи це кодування, що 10 що 16 що двійкова і безмежна кількість інших. Ціле число залишається числом незалежно від того як записане.

если складывать по модулю 64, то почему бы и нет

отличие в том, что данные произвольного размера — это не число, а последовательность чисел, иначе не было бы разницы между «0» и «0000»

Во-первых, это RGB-кодирование цветов — а ну-ка, давайте в CSS поменяем синий цвет шапки Фейсбука на желтый?

facepalm.jpg

Какие ещё RGB в CSS, всегда думал, что шестнадцатеричная для удобного перевода из двоичной и компактного отображения на терминале или телетайпе была выбрана, с фиксированным количеством символов, т.е. 4 бита в двоичной записи всегда отображаются в 1 шестнадцатеричную цифру, а не 1 или 2 при десятичном представлении.

Ага, на телетайпе.
facepalm.jpg

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

Тогда возможно Вы перепутали вопросы того «зачем знать о 16-ричных числах» и того «как/когда они появились».

«Знать о 16-ричных числах нужно затем, что с их помощью можно менять цвета на веб-страничках» — это слишком печальное объяснение, Computer Science не ограничивается веб-макакингом.

Ну ничего не мешает Вам написать альтернативную статью или снять видео с телетайпами и терминалами.

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

5. Применение 2-чной системы счисления в реальной жизни

www.youtube.com/...​Nm0MMxCE&feature=emb_logo

Бред, притянутое за уши объяснение

Смелая позиция. Хотите сказать, QR-код построен не на двочным коде?

QR код появился намного позже начала применения двоичного счисления на практике

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

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

Троичные компьютеры тоже существуют, кстати (до сих пор) — ru.wikipedia.org/wiki/Троичный_компьютер

Существуют отдельные экземпляры, но эволюция ЭВМ пошла по пути двоичных, троичного компьютера у вас нет в кармане, на столе, и его нельзя заказать на Амазоне.

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

А троичный это как?
True/false/MojetByt’?

Oбoccытe меня и назовите тупицей, но я из курса «Java Starter» от ITVDN сделал вывод, что двоичная система в компьютерах только условно двоичная, потому что есть состояния «1», «0» и «выключен».

Там это прямо не говорилось, но по признаку трех состояний «1», «0» и «выключен» я сделал вывод, что это все условности.

Лично я не буду стоять на том, что «на самом деле система троичная», это вообще бессмысленная философия.
Если мой вывод ошибочен, то ok и не буду с этим спорить.

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

Не все компоненты могут быть выключены и при этом можно измерить их состояние.

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

Высокий импеданс же имелся ввиду

Можешь развернуть?

Блин, зачем вообще в курсе жабастартер вплетать схемотехнику

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

У меня в конспекте по схемотехнике по этой именно теме написано вдвое меньше чем в русской вики ru.wikipedia.org/...​сокоимпедансное_состояние
Так вскользь затронули, что есть такое и пошли дальше..

ладно, но чтобы включить или выключить состояние высокого импеданса, нужно подать 1 или 0 на какой-то вход )

Это отражение реальности. Отсутствие значения встречается. Не всегда понятно что с этим делать.

Всмысле по какой-то причине, допустим триггер, имеет значение напряжения между уровнями 0 и 1?

Подписаться на комментарии