Что такое бинарный код?
Двоичная система счисления — это система счисления в базе 2, изобретенная Готфридом Лейбницем, одна из четырех систем счисления. В этой системе она обычно представлена двумя различными символами 0 и 1 .

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

Двоичный код также может использоваться для описания скомпилированных программ. После компиляции программа содержит двоичные данные, называемые «машинным кодом», которые могут быть выполнены процессором компьютера.
Что такое Octal?
Восьмеричная система счисления, сокращенно OCT или O, — это система счисления с основанием 8. В ней используются восемь цифр: 0, 1, 2, 3, 4, 5, 6, 7, после чего цифра 7 переходит в 0, а старшая цифра увеличивается на 1. В некоторых языках программирования ведущая цифра 0 часто указывает на то, что число является восьмеричным. Восьмеричные числа и двоичные числа соответствуют друг другу по битам (одна восьмеричная цифра соответствует трем двоичным цифрам), что делает восьмеричную систему полезной в компьютерных языках.
Восьмеричная система широко использовалась в компьютерных системах, таких как PDP-8, ICL 1900 и крупных мэйнфреймах IBM, которые используют 12-битные, 24-битные или 36-битные длины слов. Эти системы основаны на восьмеричной системе, поскольку их идеальные двоичные длины слов кратны 3 (каждая восьмеричная цифра представляет три двоичные цифры). Отображение от четырех до двенадцати цифр лаконично представляет всю машину. Это также снижает затраты, поскольку цифры могут отображаться на цифровых дисплеях, семисегментных дисплеях и калькуляторах для панелей управления оператора. Двоичные дисплеи слишком сложны, десятичные дисплеи требуют сложного оборудования, а шестнадцатеричные дисплеи требуют отображения большего количества цифр.

Поскольку одна шестнадцатеричная цифра соответствует четырем двоичным цифрам, шестнадцатеричная система более удобна для представления двоичных чисел. Поэтому восьмеричная система используется реже, чем шестнадцатеричная. Некоторые языки программирования предоставляют возможность представлять числа в восьмеричной системе, и некоторые старые приложения Unix до сих пор используют восьмеричную систему. Компьютерные системы требуют внутреннего преобразования числовых систем, используя двоичную систему в качестве базы. Преобразование числовых систем между двоичной, восьмеричной и десятичной осуществляется в программировании, и FORTRAN77, ориентированный на двоичную и десятичную системы, обрабатывает эти преобразования.
Однако все современные вычислительные платформы используют 16-, 32- или 64-разрядные системы, где 64-разрядные платформы далее делятся на 8-разрядные байты. В этих системах три восьмеричные цифры удовлетворяют каждому требованию байта, причем старшая восьмеричная цифра представляет две двоичные цифры (с +1 для следующего байта, если применимо). Для представления 16-разрядных слов в восьмеричной системе требуется 6 цифр, но старшая восьмеричная цифра представляет только 1 двоичную цифру (0 или 1). Это ограничение мешает легко читаемым байтам, поскольку они приводят к 4-разрядным восьмеричным цифрам.
В результате шестнадцатеричная система теперь чаще используется в языках программирования, поскольку две шестнадцатеричные цифры полностью определяют байт. Платформы с степенями два и размерами слов делают инструкции более понятными. Повсеместная архитектура x86 является одним из таких примеров, хотя восьмеричная система редко используется в этой архитектуре. Однако восьмеричная система может быть полезна для описания определенных двоичных кодировок, таких как байт ModRM, который разделен на 2, 3 и 3 бита.
Что такое десятичная система счисления?
Десятичная система, часто называемая системой с основой 10, представляет собой метод счета, при котором каждые десять единиц приводят к более высокой единице. Первая цифра имеет позиционное значение 10^0, вторая цифра — 10^1, N-я цифра — 10^(N-1). Значение числа в этой системе является суммой значений каждой цифры (значение × позиционный вес).
Десятичный метод счета является наиболее широко используемым в повседневной жизни. Он характеризуется приращением в десять между соседними единицами, что составляет основу десятичной системы счисления. Вероятно, это связано с тем, что люди обычно имеют десять пальцев, что повлияло на развитие арифметики с использованием десятичной системы. Аристотель заметил, что люди обычно используют десятичную систему из-за анатомической реальности наличия десяти пальцев.

Исторически сложилось так, что большинство независимо разработанных систем письменных цифр использовали десятичную основу, за исключением вавилонской шестидесятеричной (основа 60) и майянской двадцатеричной (основа 20) систем счисления. Однако эти десятичные системы не обязательно были позиционными.
Термин «десятичный» происходит от латинского слова «decem», означающего «десять». Десятичный метод счета был изобретен индуистскими математиками около 1500 лет назад, а затем передан арабами в XI веке. Он основан на двух принципах: позиционной нотации и представлении в десятичной системе. Все числа состоят из десяти основных символов, и когда единица достигает десяти, она переносится на следующую позицию, что делает положение символа решающим. Основными символами являются цифры от 0 до 9.
Для обозначения кратных десяти цифры сдвигаются на одну позицию влево с добавлением нуля, в результате чего получаются 10, 20, 30 и так далее. Аналогично, для обозначения кратных ста цифры снова сдвигаются: 100, 200, 300 и так далее. Для обозначения долей десяти цифры сдвигаются вправо, и при необходимости добавляются нули: 1/10 становится 0,1, 1/100 становится 0,01, а 1/1000 становится 0,001.
Что такое шестнадцатеричный код?
Шестнадцатеричная система счисления (сокращенно hex или индекс 16) — это система счисления с основанием 16, в которой каждые 16 добавляются к 1. Обычно он представлен цифрами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 и буквами A, B, C, D, E, F (a, b, c, d, e, f), среди которых: A~F представляют 10~15, они называются шестнадцатеричными числами.

Например, число 57 в десятичной системе записывается как 111001 в двоичной системе и 39 в шестнадцатеричной системе. Сегодня шестнадцатеричная система широко используется в компьютерной сфере, поскольку преобразовать 4 бита (Bit) в отдельные шестнадцатеричные числа несложно. 1 байт может быть представлен в виде 2 последовательных шестнадцатеричных чисел. Однако такая смешанная нотация сбивает с толку и требует использования некоторых префиксов, суффиксов или индексов для ее отображения.
Десятичный в двоичный
Преобразование десятичного числа в двоичное число включает в себя отдельное преобразование целой и дробной частей, которые затем объединяются.
Для целой части используется метод «деления на 2 и обращения остатков». Процедура выглядит следующим образом: разделите десятичное целое число на 2, получив частное и остаток. Снова разделите частное на 2 и продолжайте этот процесс, пока частное не станет меньше 1. Затем возьмите первоначально полученные остатки в качестве младших битов двоичного числа, а последующие остатки — в качестве старших битов, расположив их в обратном порядке.
| Decimal | Binary |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 7 | 111 |
| 8 | 1000 |
| 9 | 1001 |
Например, при преобразовании десятичного числа 1 в двоичное получается 1B (где B обозначает двоичный суффикс). Для десятичного числа 2, поскольку мы достигаем 2, нам нужно перенести 1, в результате чего получается двоичное число 10B. Аналогично, при преобразовании десятичного числа 5 в двоичное, поскольку 2 равно 10B, то 3 равно 10B + 1B = 11B, 4 равно 11B + 1B = 100B, а 5 равно 100B + 1B = 101B. Продолжая эту схему, когда десятичное число равно 254, его двоичное представление будет 11111110B.
Мы можем вывести общее правило при преобразовании двоичных чисел в десятичные. Начиная с младшего бита двоичного числа и двигаясь назад, каждый бит представляет собой 2 в степени n, где n обозначает положение бита от конца. Здесь n начинает отсчет с 0. Если двоичный бит имеет значение 1, он вносит вклад в сумму; если он равен 0, он не вносит вклад. Например, давайте реконструируем десятичное число из двоичного числа 11111110B, следуя процессу вычисления:
0*20+1*21+1*22+1*23+1*24+1*25+1*26+1*27=254
Почему компьютеры используют двоичную систему?
Во-первых, в двоичной системе счисления используются только две цифры: 0 и 1, поэтому любой элемент с двумя различными стабильными состояниями может быть использован для представления определенного бита числа. На самом деле, существует много компонентов с двумя различными стабильными состояниями. Например, «включено» и «выключено» неоновой лампы; «включено» и «выключено» выключателя; «высокий» и «низкий», «положительный» и «отрицательный» напряжения; «нет отверстия»; «сигнал» и «нет сигнала» в цепи; южный и северный полюса магнитных материалов и т. д., список можно продолжать. Использование этих различных состояний для представления чисел легко реализовать. Мало того, что более важно, эти два совершенно разных состояния не только количественно, но и качественно отличаются друг от друга. Таким образом, можно значительно улучшить противопомеховую способность машины и повысить ее надежность. Гораздо сложнее найти простое и надежное устройство, которое может представлять более двух состояний.
Во-вторых, четыре арифметических правила двоичной системы счисления очень просты. Более того, все четыре арифметические операции в конечном итоге можно свести к сложению и сдвигу, благодаря чему схема арифметического устройства в электронном компьютере также стала очень простой. Мало того, схема упрощена, а скорость может быть увеличена. Это также несравнимо с десятичной системой счисления.
В-третьих, использование двоичных представлений в электронных компьютерах позволяет сэкономить на оборудовании. Теоретически можно доказать, что использование тройной системы позволяет сэкономить больше всего оборудования, а за ней следует двоичная система. Однако, поскольку двоичная система имеет преимущества, которых нет у других двоичных систем, включая тройную, большинство электронных компьютеров по-прежнему используют двоичную систему. Кроме того, поскольку в двоичной системе используются только два символа «0» и «1», для анализа и синтеза логических схем в машине можно использовать булеву алгебру. Это предоставляет полезный инструмент для проектирования схем электронных компьютеров. В-четвертых, двоичные символы «1» и «0» точно соответствуют «истина» и «ложь» в логических операциях, что удобно для выполнения логических операций компьютерами.
Десятичная система против двоичной системы против шестнадцатеричной системы
Шестнадцатеричная система похожа на двоичную, с тем ключевым отличием, что шестнадцатеричная система использует «базу шестнадцать», где каждые шестнадцать чисел группируются вместе. Еще один важный аспект, на который следует обратить внимание, заключается в том, что десятичные числа от 0 до 15 в шестнадцатеричной системе обозначаются цифрами от 0 до 9, за которыми следуют буквы A, B, C, D, E, F, где 10 в десятичной системе соответствует A в шестнадцатеричной, 11 — B и так далее до 15, соответствующего F.
Обычно шестнадцатеричные числа обозначаются добавлением суффикса «H» в конце, указывающего, что число представлено в шестнадцатеричном формате, например AH, DEH и т. д. Регистр букв здесь не имеет значения. В контексте программирования на языке C шестнадцатеричные числа должны записываться как «0xA» или «0xDE», где префикс «0x» обозначает шестнадцатеричный формат.
Преобразование между десятичными и шестнадцатеричными числами здесь не рассматривается, так как правила аналогичны преобразованию между десятичными и двоичными числами. Очень важно уметь преобразовывать десятичные, двоичные и шестнадцатеричные числа, так как эти навыки широко используются, особенно в программировании микроконтроллеров с использованием C.
Для чисел от 0 до 15, которые часто используются в программировании микроконтроллеров, типичное преобразование включает в себя сначала преобразование двоичного числа в десятичное, а затем десятичного в шестнадцатеричное. Если вам сейчас трудно запомнить эти преобразования, вы можете закрепить их в памяти по мере продвижения в изучении.
Ниже приведена таблица преобразования двоичных, десятичных и шестнадцатеричных чисел от 0 до 15:
| Decimal | Binary | Hexadecimal |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |




