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

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

Компьютерный язык сильно отличается от нашего, потому что, хотя мы используем 26 букв, компьютеры используют только 2 цифры. Правильно, компьютеры общаются только с помощью 0 и 1.

Прочитайте это предложение на английском языке.

Простой не так ли? Вот как ваш компьютер видит это же предложение:

01010010 01100101 01100001 01100100 00100000 01110100 01101000 01101001 01110011 00100000 01110011 01100101 01101110 01110100 01100101 01101110 01100011 01100101 00100000 01101001 01101110 00100000 01000101 01101110 01100111 01101100 01101001 01110011 01101000 00101110.

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

Как компьютеры могут общаться, работать, вычислять и функционировать с такой тарабарщиной?

Что ж, чтобы рассказать эту историю, нам нужно побывать в 17 веке.

Немецкий математик по имени Готфрид Вильгельм Лейбниц разработал систему счисления с двумя основаниями в 1679 году («Двоичная система»). Он опубликовал свои открытия в 1703 году в статье под названием Объяснение двоичной арифметики, в которой используются только символы 0 и 1; с замечаниями о его полезности и значении, которое оно придает древним китайским фигурам Фуси (Garfinkel and Grunspan 32). (Попробуйте произнести ЭТО название 10 раз быстро).

Наша стандартная система нумерации — десятичная, то есть мы используем 10 цифр (0–9). Эти числа составляют основу любого другого числа. Но Готфрид разработал совершенно новую систему счисления, у него было основание 2, что означало, что он использовал два числа (0–1). С этими двумя числами были созданы и представлены все остальные числа. В своей новой системе Готфрид избегал почти всех таблиц умножения (видите, они НЕ НАСТОЛЬКО важны) и создал простые правила для вычислений (Garfinkel and Grunspan 32). Его система счисления называлась бинарной, потому что в ней использовались два числа.

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

Каждое число представлено комбинацией нулей и единиц. Конечно, 0 представлен 0, а 1 представлен 1.

Для больших чисел мы сталкиваемся с некоторыми сложностями, но давайте рассмотрим, как работает основание 2.

База 2 начинается с 0, затем удваивается каждое последующее число, поэтому его можно записать так:

0, 2, 4, 8, 16, 32, 64, 128 и т. д.

Или написать иначе:

2(^0), 2(^1), 2(^2), 2(^3), 2(^4), 2(^5), 2(^6), 2(^7)

Как видите, основание по-прежнему равно 2, а сила, в которую поднимается каждая двойка, увеличивается на 1, удваивая каждое число. Это составляет основу двоичной системы счисления. Теперь давайте рассмотрим, как представить число в двоичном виде. Всякий раз, когда я конвертирую десятичные числа с основанием 10 или десятичные числа в двоичные, мне нравится начинать с быстрой таблицы (это делает процесс простым и быстрым на бумаге). Запишите таблицу следующим образом:

Теперь давайте преобразуем число 55 в двоичное число. Мы начнем с поиска самого большого числа, которое можно вычесть из 55 в таблице. Это число 32. Поэтому мы поместим 1 в ячейку под 32.

55–32 = 23. Теперь снова проделываем процесс. 23–16 = 7. Мы поместим 1 под 16.

8 не вписывается в 7, поэтому мы введем 0 под 8.

7–4 = 3. Ставим 1 под 4.

3–2 = 1, поместите 1 под 2.

И так как 1–1 = 0. Мы поместим 1 под 1 и 0 везде, и все готово!

Наше двоичное число 00110111 равно 55. Чтобы преобразовать число обратно в 55, просто выполните обратный процесс. Заполните таблицу двоичным числом и добавьте все места, где стоит 1. Следовательно, 1 + 2 + 4 + 16 + 32 = 55.

Теперь давайте рассмотрим простую математическую задачу с использованием двоичного кода. Математика с двоичными числами даже проще, чем с десятичными (или числами с основанием 10). Давайте добавим 55 к 10. 10 — это 00001010, а 55 — это 00110111. Наша задача — 00110111 + 00001010. Это то же самое, что и обычное сложение, но помните, что вы можете использовать только 0 и 1.

Теперь добавим. Начните справа. 1 + 0 = 1.

Мы попали в ловушку. Я столкнулся с 1 + 1, что равно 2 в десятичном виде, но мы не можем использовать 2, но можем использовать 2 в двоичном формате, что равно 10. Так что сложите и перенесите (напишите 0 внизу и перенесите 1.). Мы продолжим тот же процесс и решим проблему.

Итак, наш ответ 01000001. Мы можем проверить наш ответ, подставив в нашу таблицу:

Теперь мы добавляем столбцы, в которых есть 1. Итак, 64 + 1 = 65. Мы знаем, что 55 + 10 = 65. Значит, наш ответ правильный! Вычитание выполняется таким же образом, только в обратном порядке. Деление и умножение выполняются так же, как и обычные числа.

Так что это двоичный код в двух словах.

Но почему это так важно и почему двоичный код — единственный язык компьютеров?

Ну, по своей сути компьютеры управляют электричеством. Когда вы отправляете электронное письмо, компьютер посылает только электрические импульсы. На самом деле компьютеры — это просто переключатели, управляющие электричеством. Мы подробнее рассмотрим эту концепцию в будущих блогах (так что не забудьте подписаться на меня здесь, на Medium).

Теперь подумайте о выключателе света. Когда вы поворачиваете переключатель в положение «ON», к лампочке поступает электричество, и свет загорается. Когда вы переключаете его в положение «OFF», электричество перестает течь, и лампочка гаснет. Так работает компьютер. Но компьютер состоит из миллиардов крошечных микроскопических транзисторов. Каждый транзистор является переключателем.

Когда вы включаете свет, есть два варианта: ВКЛ и ВЫКЛ.

Нет ничего посередине, на или на позициях. ВКЛ или ВЫКЛ.

То же самое верно и для транзисторов. Они либо включены, либо выключены, ничего между ними. В двоичном формате 1 означает ВКЛ, а 0 – ВЫКЛ. Итак, когда мы видим двоичное число 00110111, компьютер выключает транзисторы, выключает, включает, включает, выключает, включает, включает, включает. Теперь это может показаться запутанным, вы не можете выключить выключатель, он уже выключен. Но компьютеры работают циклами, поэтому каждый цикл может быть включен или выключен. Когда мы видим, выкл, выкл, транзистор выключен в течение двух циклов (отсутствие импульса электричества), затем включен в течение двух циклов (отправлен один импульс для каждого цикла) и т. д.

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

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

Одним из таких методов, который сегодня не так популярен, является ASCII, что означает "Американский стандартный код для обмена информацией". В таблице ASCII перечислены буквы, прописные и строчные буквы, цифры и некоторые символы, а также числовые коды, которые можно преобразовать в двоичные. Например, заглавная буква A — это код ASCII 65, который в двоичном виде преобразуется в 01000001. Каждая буква состоит из 8 цифр. Давайте посмотрим на быстрый пример слова HELLO.

H равно 72 в таблице ASCII или 01001000 в двоичном формате. E равно 69 или 01000101. L равно 76 или 01001100. O равно 79 или 01001111.

Итак, слово HELLO равно 01001000 01000101 01001100 01001100 01001111 в двоичном формате.

Конечно, мы, люди, не используем двоичный код. Именно здесь используются операционные системы компьютера (например, Windows) и языки программирования (например, Java). Компьютер сам преобразует информацию в двоичный файл в процессе, который называется компиляция.

В двоичном формате мы называем каждую цифру битом (двоичнаяцифровая цифраit). И каждая группа из 8 бит называется байтом. Эти биты и байты являются основными измерениями для систем хранения данных компьютера. Я уверен, что вы слышали об гигабайтах при использовании USB-накопителя или, возможно, внешнего жесткого диска, или при покупке ноутбука. 1 гигабайт составляет около 1 000 000 000 (1 миллиард) байтов и около 8 000 000 000 (8 миллиардов) бит.

В 1703 году, когда Готфрид Лейбникс опубликовал свою статью о двоичной арифметике, он и мечтать не мог о ее использовании.

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

Еще о важности математики:



Еще по истории компьютеров:



Процитированные работы

Двоичные и шестнадцатеричные системы счисления. Академия Хана, Академия Хана, www.khanacademy.org/math/алгебра-дом/alg-intro-to-алгебра/алгебра-альтернативные-числовые базы/v/binary-multiplication.

Двоичная система счисления. Математика — это весело, www.mathsisfun.com/binary-number-system.html.

Богомольный, Александр. История двоичной системы. Интерактивные математические сборники и головоломки, www.cut-the-knot.org/do_you_know/BinaryHistory.shtml.

Гарфинкель, Симсон и Рэйчел Х. Гранспан. Компьютерная книга: от счетов до искусственного интеллекта, 250 вех в истории информатики. Стерлинг, 2018.

Гросс, Мелани. Важность двоичных чисел в вычислениях — Новости GHacks Tech. Новости технологий GHacks, 7 мая 2012 г., www.ghacks.net/2011/08/12/the-importance-of-binary-numbers-in-computing/.

Инджософт АБ. Код ASCII — расширенная таблица ASCII. Код ASCII — расширенная таблица ASCII, www.ascii-code.com/.

Порубский, Стефан. "Бинарная система." BinarySystem, www.cs.cas.cz/portal/AlgoMath/NumberTheory/Arithmetics/NumeralSystems/PositionalNumeralSystems/BinarySystem.htm.