Что такое система бинарных чисел?

Система двоичных чисел, также известная как база-2, является фундаментальным языком всей цифровой электроники и современных вычислений. В отличие от десятичной системы, которая использует десять цифр (0-9), двоичная использует только два символа: 0 и 1 . Каждая двоичная цифра называется бит (короткая для двоичной цифры). Эта простота делает двоичную так практичной в электронике: цифровые схемы могут легко представлять два различных состояния — выключено (0) и на (1) — с использованием уровней напряжения, транзисторных переключателей или магнитных доменов. Весь цифровой мир, от микропроцессоров до флэш-памяти, полагается на двоичное представление для хранения, обработки и связи данных.

Исторически двоичная система восходит к древним временам, но ее современная форма была разработана Готфридом Вильгельмом Лейбницем в 17 веке. Лейбниц признал, что двоичная система может использоваться для выполнения арифметики с использованием простого набора правил, концепция, которая позже стала основой компьютерной архитектуры. Сегодня каждое цифровое устройство — смартфоны, ноутбуки, облачные серверы, датчики IoT — работает путем манипулирования двоичными числами.

Как работают бинарные числа

Двоичные числа читаются справа налево, причем каждая позиция соответствует мощности 2. Самая правая цифра - это 20 (единиц) место, следующая цифра - 21 (два), затем 22 (четыре), 23 (восьмерки) и так далее. Чтобы найти десятичное значение двоичного числа, вы суммируете силы 2, где цифра равна 1.

Например, двоичное число 1101 представляет:

  • 1 × 23 = 8
  • 1 × 22 = 4
  • 0 × 21 = 0
  • 1 × 20 = 1

Всего: 8 + 4 + 0 + 1 = 13 в десятичном.Наоборот, десятичное значение 13 в двоичном равно 1101.

Число битов определяет диапазон значений, которые могут быть представлены. С битами n можно представлять целые числа от 0 до 2n − 1. Например, 8 битов (байт) могут представлять от 0 до 255; 16 битов могут представлять от 0 до 65 535; 32 бита могут представлять более 4 миллиардов значений. Этот принцип имеет решающее значение для понимания типов данных в программировании и адресации памяти в аппаратном обеспечении.

Преобразование бинарных в десятичные

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

  1. Начните с самой левой цифры.
  2. Умножьте текущий результат на 2, затем добавьте следующую цифру.
  3. Повторяйте до тех пор, пока все цифры не будут обработаны.

Давайте снова преобразуем двоичную систему 1101, используя метод удвоения:

  • Старт: 0 (первоначальный результат)
  • Первая цифра 1: (0 × 2) + 1 = 1
  • Вторая цифра 1: (1 × 2) + 1 = 3
  • Третья цифра 0: (3 × 2) + 0 = 6
  • Четвертая цифра 1: (6 × 2) + 1 = 13

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

Для двоичных дробей понятие распространяется на отрицательные силы 2. Например, двоичная 0,101 равна 1 × 2−1 + 0 × 2−2 + 1 × 2−3 = 0,5 + 0 + 0,125 = 0,625 в десятичном. Это основа представлений фиксированной точки и плавающей точки в цифровых системах.

Преобразование десятичных в бинарные

Для преобразования десятичного числа в двоичное используются два общих метода: метод деления и метод вычитания.

  1. Разделите десятичное число на 2.
  2. Запись остатка (0 или 1) — это становится наименее значимым битом.
  3. Повторите деление на коэффициент до тех пор, пока коэффициент не станет 0.
  4. Бинарное число — это остаток, прочитанный от последнего к первому.

Пример: Преобразовать десятичную цифру 25 в двоичную.

  • 25 ÷ 2 = 12 остаток 1
  • 12 ÷ 2 = 6 остаток 0
  • 6 ÷ 2 = 3 остаток 0
  • 3 ÷ 2 = 1 остаток 1
  • 1 ÷ 2 = 0 остаток 1

Считывание остатков снизу вверх: 11001. Так десятичная цифра 25 = двоичная 11001.

Для десятичных дробей вы умножаете на 2 последовательно, каждый раз извлекая целочисленную часть. Например, 0,625 × 2 = 1,25, целочисленная часть 1; 0,25 × 2 = 0,5, целочисленная часть 0; 0,5 × 2 = 1,0, целочисленная часть 1. Двоичная фракция составляет 0,101.

Бинарная арифметика

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

Бинарное дополнение

Основными правилами для бинарного сложения являются:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 0, с носителем 1 (поскольку 1 + 1 = 10 в двоичном виде)
  • 1 + 1 + 1 = 1, с переноской 1

Пример: Добавить 1011 (десятичный 11) и 1101 (десятичный 13).

 1011
+ 1101
-------
 11000 (decimal 24)

Начнем с правой: 1+1=0 carry 1; следующий столбец: 1+0+carry1 = 0 carry1; следующий: 0+1+carry1 = 0 carry1; следующий: 1+1+carry1 = 1 carry1; конечный carry 1 дает 11000. Это показывает, что бинарное сложение может производить дополнительный бит (переток), если результат превышает количество битов.

Бинарная вычитка

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

  • 0 − 0 = 0
  • 1 − 0 = 1
  • 1 − 1 = 0
  • 0 − 1 = 1, заимствуйте 1 из следующего более высокого бита

Однако цифровые системы предпочитают использовать комплемент двух для вычитания, поскольку он позволяет вычитание выполнять с одним и тем же аппаратным обеспечением сложения. Чтобы вычесть B из A, возьмите комплемент двух B и добавьте его в A. Комплект двух получается путем инвертирования всех битов B (bitwise NOT) и добавления 1.

Пример: 1010 (10) − 0011 (3) = 0111 (7).

  • Комплект из двух 0011: инверт → 1100, добавьте 1 → 1101
  • Добавить: 1010 + 1101 = 10111. Отбрасывать конечный носитель (при использовании фиксированной ширины) дает 0111 (7).

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

Бинарное умножение

Двоичное умножение аналогично десятичному умножению, но еще проще, потому что существуют только две цифры. Так как 0 × что угодно = 0 и 1 × что угодно = само по себе, умножение сводится к смещению и прибавлению. Например, умножение 101 (5) на 011 (3):

 101
× 011
-------
 101 (partial product: 101 × 1)
 1010 (shifted one position: 101 × 1, second bit)
+ 00000 (101 × 0, third bit)
-------
 01111 (decimal 15)

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

Бинарное деление

Бинарное деление следует процедуре длинного деления, но снова упрощается, потому что делитель либо переходит в текущий остаток ровно один раз (1) или нулевой раз (0). Коэффициентные биты создаются путем сравнения делителя с текущими дивидендными битами. Разделение является наиболее сложной арифметической операцией в двоичном, обычно реализуемой с использованием итеративных алгоритмов (например, восстановление или невосстановление деления). На практике процессоры часто используют комбинацию операций вычитания и сдвига внутри ALU.

Другие системы чисел, связанные с бинарными

Две другие системы позиционных чисел широко используются в цифровой электронике из-за их тесной связи с двоичными: шестидесятичные (база-16) и восьмидесятые (база-8).

шестидесятичный

Hexadecimal использует 16 цифр: 0-9 и A-F (где A=10, B=11, C=12, D=13, E=14, F=15).С 16 = 24 каждая шестнадцатеричная цифра соответствует точно четырем двоичным битам. Например, двоичное число 1111 1010 1100 может быть сгруппировано в кусочки (4-битные группы) и непосредственно преобразовано в шестнадцатеричный: 1111 = F, 1010 = A, 1100 = C, что придает шестнадцатеричную FAC. Это делает шестнадцатеричную идеальной для представления адресов памяти, машинного кода и цветовых кодов (например, #FF00FF в веб-дизайне).

Для преобразования шестнадцатеричной в десятичную величину каждое положение представляет собой мощность 16. Например, шестнадцатеричной 3А = 3 × 161 + 10 × 160 = 48 + 10 = 58 десятичных.

Октавальный

Octal использует цифры 0-7, и каждая цифра соответствует трем двоичным битам. Octal исторически был популярен в старых компьютерных системах (например, PDP-8, разрешения файлов Unix). Например, двоичный 101 010 111 можно сгруппировать в трехбитные фрагменты: 101=5, 010=2, 111=7, давая окталь 527. Сегодня октал менее распространен в основных вычислениях, но все еще используется в некоторых встроенных системах и для представления разрешений файлов в Linux (например, chmod 755).

Применение бинарных чисел

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

Логические ворота и цифровые схемы

Все цифровые схемы — от простых И шлюзов до сложных микропроцессоров — работают на двоичных входах и выходах. Логические шлюзы (AND, OR, NOT, NAND, NOR, XOR, XNOR) принимают двоичные сигналы и объединяют их согласно булевой алгебре. Комбинационные схемы, такие как аддиторы, мультиплексоры и декодеры, используют двоичные числа для выполнения арифметики и маршрутизации данных. Последовательности цепей, такие как флип-флопы и регистры, хранят двоичные данные в виде состояния. Каждый чип внутри компьютера представляет собой обширную сеть двоичной логики.

Микропроцессоры и CPU

Центральный процессор (CPU) выполняет инструкции, закодированные как двоичные числа. Архитектура набора инструкций (ISA) определяет двоичные паттерны для операций, таких как ADD, LOAD, STORE и JUMP. ЦП извлекает эти двоичные инструкции из памяти, декодирует их и использует блок управления для направления данных через ALU (который выполняет двоичную арифметику). Производительность процессора часто описывается его размером слова - числом битов, которое он может обрабатывать одновременно (например, 8-бит, 16-бит, 32-бит, 64-бит).

Память и хранение

Все формы цифровой памяти — RAM, ROM, флэш-накопители, SSD, жесткие диски — хранят данные в виде двоичных паттернов. В летучей памяти (RAM) каждая ячейка удерживает немного в качестве заряда в конденсаторе или состоянии в шлепателе. В энергонезависимой памяти биты хранятся в виде магнитных доменов, захваченного заряда в транзисторах с плавающими вратами или фазовых изменений в специальных материалах. Сами адреса памяти являются двоичными числами, и вся концепция адресации зависит от двоичного значения места.

Цифровая коммуникация

Сетевые протоколы, от Ethernet до Wi-Fi и 5G, передают двоичные сигналы. Пакеты данных содержат заголовки (адреса источника / назначения в двоичном), полезные нагрузки (двоичные данные) и коды обнаружения ошибок (например, CRC - бинарное полиномиальное деление). Физический уровень кодирует биты как модулированные сигналы (например, амплитуда, частота или фазовые сдвиги). Понимание двоичного важно для проектирования модемов, маршрутизаторов и коммуникационных чипов.

Бинарное представление отрицательных чисел

Для представления подписанных целых чисел в двоичном коде системы используют два комплемента (наиболее распространенный), знаковую величину или один комплемент. Комплект двух позволяет одной и той же схеме сложения обрабатывать как положительные, так и отрицательные числа без специального оборудования. В системе комплемента 8-битных двух диапазон составляет от −128 до +127. Самый высокий бит действует как бит знака: 0 для положительных, 1 для отрицательных. Например, −5 в 8-битном двоичном коде составляет 11111011 (инверт 00000101 → 11111010, добавить 1 → 11111011).

Floating Point Numbers (Плавающие точки)

Для реальных чисел компьютеры используют двоичное представление с плавающей точкой, как определено стандартом IEEE 754. Число хранится в виде трех компонентов: знака (1 бит), экспоненты (8 или 11 бит) и мантисы (23 или 52 бита). Например, десятичное число 3.14 аппроксимируется в двоичном виде как конечная строка битов, потому что некоторые десятичные фракции не могут быть представлены точно в двоичном. Вот почему арифметика с плавающей точкой может производить ошибки округления — ключевое соображение в численных вычислениях.

Заключение

Система двоичных чисел - это не просто академическое любопытство; это основной язык всей цифровой электроники. От самого маленького микроконтроллера до самого большого облачного центра обработки данных каждая операция сводится к манипуляциям 0 и 1. Мастерство двоичного - включая конверсии, арифметику и ее связь с шестидесятыми и восьмичными - дает инженерам возможность разрабатывать эффективные схемы, оптимизировать производительность программного обеспечения и устранять проблемы с аппаратными средствами. По мере того, как вычисления развиваются в направлении квантовых и нейроморфных архитектур, двоичный остается проверенной основой, на которой построена вся современная цифровая технология. Для любого, кто работает в электронике, информатике или смежных областях, твердое понимание двоичного незаменимо.

Для дальнейшего чтения статья Wikipedia о двоичных числах предоставляет обширный обзор. Подробные учебники по двоичной арифметике доступны из Все о схемах. Практическое применение двоичного в цифровой логике хорошо объяснено в Логическая организация TutorialsPoint. Для более глубокого взгляда на представление с плавающей точкой, резюме IEEE 754 Стива Холлаша является классической ссылкой.