Как двоичный код обеспечивает работу современных вычислений и как его конвертировать

13

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

Эти символы называются битами (сокращение от «binary digits» — двоичные цифры). Внутри аппаратного обеспечения вашего устройства бит представляет собой физическую реальность. Он либо включен, либо выключен. Истина или ложь. Высокое или низкое напряжение. Нет никакого промежуточного состояния. Эта двоичная логика позволяет электронным устройствам обрабатывать данные с высокой точностью, превращая абстрактную информацию в конкретные электрические сигналы.

Почему компьютеры используют систему счисления с основанием 2

Мы, люди, полагаемся на десятичную систему. Она имеет основание 10. Мы используем цифры от 0 до 9. Это кажется естественным, потому что у нас десять пальцев. Компьютеры, однако, испытывают трудности с различением десяти различных состояний. Гораздо проще и надежнее проектировать схемы, которые различают всего два состояния.

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

Возьмем десятичное число 23. Цифра «2» — это не просто двойка. Она находится в разряде десятков. Она представляет собой 2, умноженное на 10 в степени 1, что равно 20. Цифра «3» находится в разряде единиц. Это 3, умноженное на 10 в степени 0, что равно 3. Сложив их, мы получаем 23.

Двоичная система работает по тому же принципу, но использует основание 2. Позиции представляют степени двойки, а не десятки. Этот сдвиг критически важен. Он меняет то, как мы вычисляем значение, но не то, как мы храним информацию.

От битов к байтам

Один бит — это мало. Один отдельный 0 или 1 почти не несет смысла сам по себе. Чтобы представлять сложные данные, компьютеры группируют биты вместе.

Стандартной единицей является байт. Один байт равен 8 битам. С помощью 8 бит можно создать 256 уникальных комбинаций (от 00000000 до 11111111). Этот диапазона достаточно для кодирования каждой буквы алфавита, цифр, знаков препинания и специальных символов.

Такие системы, как ASCII или UTF-8, используют эти значения байтов для сопоставления конкретных символов. Когда вы набираете букву «A», компьютер не сохраняет изображение буквы A. Он сохраняет двоичную последовательность, которая переводится в десятичное число 65. Это число указывает экрану, какие именно пиксели нужно зажечь.

Преобразование двоичного числа в десятичное

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

Чтобы преобразовать двоичное число в десятичное, вы умножаете каждую цифру на 2 в степени, соответствующей её позиции. Вы начинаете с правой стороны, которая является позицией 0, и двигаетесь влево.

Давайте разберем двоичное число 1011.

  1. Самая правая цифра — 1. Она находится в позиции 0. Следовательно, 1 × 2⁰ = 1.
  2. Следующая цифра — 1. Она находится в позиции 1. Следовательно, 1 × 2¹ = 2.
  3. Следующая цифра — 0. Она находится в позиции 2. Следовательно, 0 × 2² = 0.
  4. Самая левая цифра — 1. Она находится в позиции 3. Следовательно, 1 × 2³ = 8.

Теперь сложим результаты: 8 + 0 + 2 + 1 = 11.

Двоичная последовательность 1011 — это в точности десятичное число 11.

Преобразование десятичного числа в двоичное

Обратный процесс столь же прост. Он включает в себя деление и остатки. Чтобы преобразовать десятичное число в двоичное, вы делите число на 2 многократно. Вы записываете остаток каждый раз. Затем вы читаете эти остатки в обратном порядке.

Давайте преобразуем десятичное число 11 обратно в двоичное.

  • 11, деленное на 2, равно 5, с остатком 1.
  • 5, деленное на 2, равно 2, с остатком 1.
  • 2, деленное на 2, равно 1, с