За последние пять с половиной тысячелетий люди изобрели более 100 различных способов записи чисел.
При всем уважении к римским цифрам, сейчас любимой техникой в мире является - с огромным отрывом - современная десятичная система. Его пользователи могут выразить любое целое число всего 10 маленькими символами: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
Но ваш компьютер использует другой подход.
Ноутбуки, смартфоны и другие устройства используют двоичный код. Математический язык, бинарные ретрансляторы инструкций для этих высокотехнологичных штуковин. Он сообщает вашему компьютеру, как звучит голос подкастера, какие цвета должны быть в видео на YouTube и сколько букв было использовано в письме, которое только что отправил ваш босс.
Знаешь. Такие важные вещи.
Двоичный код оправдывает свое название. В отличие от десятичной системы, в ней используются только два типа цифр, которые программисты называют «битами». Обычно есть «0» и «1». И все.
Сегодня мы покажем вам, как преобразовать двоичное число в более привычную десятичную систему. Тогда, как хороший фокусник, мы поступим с точностью до наоборот.
Не волнуйтесь. Проявив немного терпения, вы сможете освоить этот «трюк» и получать от этого удовольствие!
Знай своих представителей
Технически, 0 и 1 - это единственные биты, необходимые для записи двоичных чисел. Но чтобы понять их, вы должны понимать третье значение: 2.
Лучше объяснить это на примере. Число138правильно выражается в двоичном коде как «10001010».
Как ваш компьютер может понять, что эта очевидная тарабарщина означает «138»?
Программирование - это часть ответа. Кто-то сообщил вашему устройству, что в данном случае двоичный код представляет собой число, а не написанное слово или предложение; для последнего есть отдельный метод декодирования.
Как только этот основной факт установлен, код работает, присваивая разный показатель степени 2 каждому отдельному биту (т. е. каждому 0 и каждому 1).
Показатель степени - это значение, умноженное само на себя определенное количество раз. Итак, 2 в третьей степени, записанное как23, равно 2 x 2 x 2, что равно 8.
Пожалуйста, наслаждайтесь следующим списком степеней 2. Поверьте нам, вы захотите просмотреть это в ближайшее время.
2=1
21=2
22=4
23=8
24=16
25=32
26=64
27=128
28=256
29=512
210=1024
Преобразование двоичного числа в десятичное
Теперь вернемся к нашему исходному двоичному числу:10001010
Если английский является вашим родным языком, приготовьтесь. Вы собираетесь бороться со своими инстинктами. Видите, письменный английский читается слева направо. Но теперь нам нужно разбить это двоичное число, двигаясь в обратном направлении: справа налево.
В любом двоичном числе крайний правый бит должен быть умножен на 2. Затем тот, что находится непосредственно слева, умножается на 21.
Далее бит слева от него умножается на 22. И так далее и тому подобное.
Заметили здесь закономерность? Отдельные показатели числа 2 используются в порядке возрастания справа налево.
Хорошо, теперь наша задача состоит в том, чтобы поддерживать этот шаблон, пока мы не сопоставим показатель степени 2 с каждым битом - каждым 0 и 1- в двоичном числе.
Мы остановимся, когда последний бит, крайний слева, будет умножен на соответствующий показатель степени 2.
Полезный способ сохранить ваши цифры прямыми, это физически выровнять экспоненты над соответствующими двоичными битами на листе бумаги. В идеале это должно выглядеть примерно так:
Хороший материал. Хорошо, теперь вернемся к фактическому преобразованию.
Поскольку 10001010 содержит 8 отдельных битов, мы собираемся решить 8 отдельных задач на умножение. Начнем с 0 в крайнем правом конце.
Что такое 0 x 2? Правильный ответ: 0.
Одна проблема решена, осталось семь. Переместиться на одну позицию влево. Видите там "1"? Что ж, 1 x 21=2. Теперь переместите еще один пробел влево. Это даст вам 0 x 22, что равно 0.
Если вы продолжите использовать этот шаблон, двигаясь от крайнего правого к крайнему левому, вот что вы обнаружите:
0 x 2=0
1 x 21=2
0 x 22=0
1 x 23=8
0 x 24=0
0 x 25=0
0 x 26=0
1 x 27=128
Подожди, мы почти у финиша!
Возьмите результаты всех этих задач на умножение и сложите их вместе. Не умножать, а прибавлять. Сообразительный?
Чему равно 0 + 2 + 0 + 8 + 0 + 0 + 0 + 128?
Прежде чем мы ответим на этот вопрос, давайте избавимся от всех этих нулей. В задаче на сложение они нам не нужны. Все, что нам действительно нужно сделать, это решить эту головоломку:
2 + 8 + 128=?
Угадайте, что? Окончательный ответ:138. Поздравляем, мы прошли полный круг! Пройди круг почета.
Обратите внимание, что 138 - это целое число. Существует техника преобразования чисел с дробной составляющей, например 0.25 и 3.14, в двоичный код. Но полное раскрытие: это довольно сложно. Если это вас не беспокоит и вы хотите узнать больше, Институт инженеров по электротехнике и радиоэлектронике (IEEE) опубликовал стандартизированный метод преобразования.
Вот удобный виджет, который поможет вам с конверсиями.
Преобразование десятичного числа в двоичное
Изменив «10001010» на «138», пришло время обратить наш процесс вспять. Предположим, вы начали с 138 и должны были преобразовать его в двоичный код. Как бы вы это сделали?
Еще раз, ключом ко всему этому являются экспоненты.
Посмотрите еще раз на наш список «степеней двойки». Найдите значение, которое ближе всего к 138, но не превышает его.
Быстрый повторный просмотр показывает, что 138 мест находятся между 256 (это 28) и 128 (это 27).
Теперь из 138 вычтем 128. Вот уравнение:
138 - 128=10
Далее, возьмите эти 10 и еще раз взгляните на список экспонент. Степень числа 2, которая ближе всего к 10, равна 23, или 8. Итак, на данный момент наша задача состоит в том, чтобы вычесть 8 из 10. Вот так:
10 - 8=2
А что ты знаешь? Число 2 равно 21.
Этот процесс дал нам три важные цифры: 128, 8 и 2. Наша следующая цель - сложить их.
128 + 8 + 2=138
Найдите лист бумаги, если вы еще этого не сделали. Запишите значение каждого показателя степени числа 2, начиная с «128» (помните, что это 27) и «1» (что равно 2). Делайте это в порядке убывания слева направо. И не забудьте оставить пробел между цифрами.
Ваш текст должен выглядеть так:
128 64 32 16 8 4 2 1
Как видите, здесь перечислены восемь отдельных значений. Нарисуйте стрелку вниз (↓) под каждым значением.
Затем обратитесь к задаче на сложение, которую мы записали выше, которая гласит128 + 8 + 2=138
Вы видите "128" в этой задаче? Если да, напишите «1» под соответствующей стрелкой. В уравнении написано "64"? Неа! Итак, под этой стрелкой мы напишем «0». Следуйте той же схеме, и вы получите это:
Похоже? У нас осталось 10001010 - и, как мы уже установили, это означает «138».
Ну вот. Наш пресловутый волшебник заставил кролика исчезнуть и снова вернул его. Морковь вокруг!
Вот это смешно
Популярный научно-фантастический комедийный сериал «Футурама» обожает математические шутки. В эпизоде второго сезона «Гудки» особняк с привидениями завещан мошенническому роботу Бендеру Бендингу Родригесу. Когда он входит внутрь, он с ужасом обнаруживает секретное двоичное сообщение, которое гласит: «1010011010». Возможно, Бендер был прав, опасаясь; в десятичной форме это означает "666".
Часто задаваемые вопросы
Что такое двоичное число 11111111 в десятичном формате?
Двоичное число 11111111 равно десятичному числу 255.