Бинарный код

Беззнаковый двоичный код

Давайте разберемся, что же представляет собой такой вид записи. В целых беззнаковых кодах каждый разряд (двоичный) представляет степень цифры два. При этом наименьшее число, которое можно записать в такой форме, равно нулю, а максимальное можно представить следующей формулой: М=2п-1. Эти два числа полностью определяют диапазон ключа, которым можно выразить такой двоичный код. Давайте рассмотрим возможности упомянутой формы записи. При использовании данного вида беззнакового ключа, состоящего из восьми разрядов, диапазон возможных чисел составит от 0 до 255. Шестнадцатиразрядный код будет иметь диапазон от 0 до 65535. В восьмиразрядных процессорах для хранения и записи таких чисел используют два сектора памяти, которые располагаются в соседних адресатах. Работу с такими ключами обеспечивают специальные команды.

Виды двоичных кодов

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

При этом значение минимального числа в n-разрядном двоичном коде будет равно 0, а максимального вычисляться по формуле 2n-1.

К примеру, для шестнадцатиразрядного кода допустимыми будут значения чисел от 0 до 65535.

На практике приходится решать задачи посложнее.

Бинарный код

Фото 3. С помощью двоичного кода можно закодировать все что угодно

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

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

В частности, для определения знака числа используется старший разряд в слове.

Если слово начинается с символа «0», значит число положительное (имеет знак «+»), если с символа «1», значит оно – отрицательное (имеет знак «-»).

При использовании шестнадцатиразрядного кода в таком случае мы сможем зашифровать числа в диапазоне от -32767 до +32767.

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

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

Видео о двоичном коде:

Двоичная запись чисел

В двоичной системе счисления числа записываются с помощью двух символов ( и 1). Чтобы не путать, в какой системе счисления записано число, его снабжают указателем справа внизу. Например, число в десятичной системе 510, в двоичной 1012. Иногда двоичное число обозначают префиксом 0b или символом & (амперсанд), например 0b101 или соответственно &101.

В двоичной системе счисления (как и в других системах счисления, кроме десятичной) знаки читаются по одному. Например, число 1012 произносится «один ноль один».

Натуральные числа

Натуральное число, записываемое в двоичной системе счисления как (an−1an−2…a1a)2{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}}, имеет значение:

(an−1an−2…a1a)2=∑k=n−1ak2k,{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=\sum _{k=0}^{n-1}a_{k}2^{k},}

где:

  • n{\displaystyle n} — количество цифр (знаков) в числе,
  • ak{\displaystyle a_{k}} — значения цифр из множества {0,1},
  • k{\displaystyle k} — порядковый номер цифры.

Отрицательные числа

Отрицательные двоичные числа обозначаются так же как и десятичные: знаком «−» перед числом. А именно, отрицательное целое число, записываемое в двоичной системе счисления (−an−1an−2…a1a)2{\displaystyle (-a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}}, имеет величину:

(−an−1an−2…a1a)2=−∑k=n−1ak2k.{\displaystyle (-a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=-\sum _{k=0}^{n-1}a_{k}2^{k}.}

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

Дробные числа

Дробное число, записываемое в двоичной системе счисления как (an−1an−2…a1a,a−1a−2…a−(m−1)a−m)2{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{2}}, имеет величину:

(an−1an−2…a1a,a−1a−2…a−(m−1)a−m)2=∑k=−mn−1ak2k,{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{2}=\sum _{k=-m}^{n-1}a_{k}2^{k},}

где:

  • m{\displaystyle m} — количество цифр дробной части числа,
  • ak{\displaystyle a_{k}} — значения цифр из множества {,1}{\displaystyle \{0,1\}}.

Зачем нужен двоичный код?

До появления ЭВМ использовались различные автоматические системы, принцип работы которых основан на получении сигнала. Срабатывает датчик, цепь замыкается и включается определенное устройство. Нет тока в сигнальной цепи – нет и срабатывания. Именно электронные устройства позволили добиться прогресса в обработке информации, представленной наличием или отсутствием напряжения в цепи.

Бинарный код

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

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

Даже можно упростить запись: «есть»; «нет»; «есть»; «есть».

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

Но для их записи используется все тот же двоичный код, состоящий из нулей и единиц, соответствующий наличию или отсутствию сигнала. Есть он, или его нет – без разницы. Для чипа любой из этих вариантов – это единичная частичка информации, которая получила название «бит» (bit — официальная единица измерения).

Условно, символ можно закодировать последовательностью из нескольких знаков. Двумя сигналами (или их отсутствием) можно описать всего четыре варианта: 00; 01;10; 11. Такой способ кодирования называется двухбитным. Но он может быть и:

  • Четырехбитным (как в примере на абзац выше 1011) позволяет записать 2^4 = 16 комбинаций-символов;
  • Восьмибитным (например: 0101 0011; 0111 0001). Одно время он представлял наибольший интерес для программирования, поскольку охватывал 2^8 = 256 значений. Это давало возможность описать все десятичные цифры, латинский алфавит и специальные знаки;
  • Шестнадцатибитным (1100 1001 0110 1010) и выше. Но записи с такой длинной – это уже для современных более сложных задач. Современные процессоры используют 32-х и 64-х битную архитектуру;

Скажу честно, единой официальной версии нет, то так сложилось, что именно комбинация из восьми знаков стала стандартной мерой хранящейся информации, именуемой «байт». Таковая могла применяться даже к одной букве, записанной 8-и битным двоичным кодом. Итак, дорогие мои друзья, запомните пожалуйста (если кто не знал):

8 бит = 1 байт.

Бинарный код

Так принято. Хотя символ, записанный 2-х или 32-х битным значением так же номинально можно назвать байтом. Кстати, благодаря двоичному коду мы можем оценивать объемы файлов, измеряемые в байтах и скорость передачи информации и интернета (бит в секунду).

Кодирование систем

Кодекс ASCII

Американский Стандартный Кодекс для информационного Обмена (ASCII), использует 7-битный двоичный код, чтобы представлять текст и другие знаки в пределах компьютеров, оборудования связи и других устройств. Каждому письму или символу назначают число от 0 до 127. Например, строчные буквы «a» представлены 1100001 как немного последовательности (который является 97 в десятичном числе).

Двоично-десятичное число

Двоично-десятичное число или УВОЛЬНЕНИЕ С ВОЕННОЙ СЛУЖБЫ ПО ДИСЦИПЛИНАРНЫМ МОТИВАМ, является закодированным представлением набора из двух предметов целочисленных значений, которое использует 4-битное откусывание, чтобы закодировать десятичные цифры. Четыре бита могут закодировать до 16 отличных ценностей; но в ЗАКОДИРОВАННЫХ УВОЛЬНЕНИЕМ С ВОЕННОЙ СЛУЖБЫ ПО ДИСЦИПЛИНАРНЫМ МОТИВАМ числах только первые десять ценностей в каждом откусывании законны, и кодируют ноль десятичных цифр, до девять. Оставление шестью ценностями незаконно, и может вызвать или машинное исключение или неуказанное поведение, в зависимости от компьютерного внедрения арифметики УВОЛЬНЕНИЯ С ВОЕННОЙ СЛУЖБЫ ПО ДИСЦИПЛИНАРНЫМ МОТИВАМ.

Арифметика УВОЛЬНЕНИЯ С ВОЕННОЙ СЛУЖБЫ ПО ДИСЦИПЛИНАРНЫМ МОТИВАМ иногда предпочитается числовым форматам с плавающей запятой в коммерческих и финансовых заявлениях, где сложные поведения округления чисел с плавающей запятой несоответствующие.

Что такое двоичный код?

Дата
Категория: it

Бинарный код

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

Каким же образом компьютер умудряется обрабатывать такую разнообразную информацию?Секрет заключается в двоичной системе исчисления. Все данные поступают в компьютер, представленные в виде единиц и нулей, каждому из которых соответствует одно состояние электропровода: единицам — высокое напряжение, нулям — низкое или же единицам — наличие напряжения, нулям — его отсутствие. Преобразование данных в нули и единицы называется двоичной конверсией, а окончательное их обозначение — двоичным кодом.В десятичном обозначении, основанном на десятичной системе исчисления, которая используется в повседневной жизни, числовое значение представлено десятью цифрами от 0 до 9, и каждое место в числе имеет ценность в десять раз выше, чем место справа от него. Чтобы представить число больше девяти в десятичной системе исчисления, на его место ставится ноль, а на следующее, более ценное место слева — единица. Точно так же в двоичной системе, где используются только две цифры — 0 и 1, каждое место в два раза ценнее, чем место справа от него. Таким образом, в двоичном коде только ноль и единица могут быть изображены как одноместные числа, и любое число, больше единицы, требует уже два места. После ноля и единицы следующие три двоичных числа это 10 (читается один-ноль) и 11 (читается один-один) и 100 (читается один-ноль-ноль). 100 двоичной системы эквивалентно 4 десятичной. На верхней таблице справа показаны другие двоично-десятичные эквиваленты.Любое число может быть выражено в двоичном коде, просто оно займет больше места, чем в десятичном обозначении. В двоичной системе можно записать и алфавит, если за каждой буквой закрепить определенное двоичное число.

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

Биты и байты

Самая маленькая единица в компьютерной обработке, бит — это единица данных, которая может обладать одним из двух возможных условий. К примеру, каждая из единиц и нулей (справа) означает 1 бит. Бит можно представить и другими способами: наличием или отсутствием электрического тока, дырочкой и ее отсутствием, направлением намагничивания вправо или влево. Восемь битов составляют байт. 256 возможных байтов могут представить 256 знаков и символов. Многие компьютеры обрабатывают байт данных одновременно.

Бинарный код

Двоичная конверсия. Четырехцифровой двоичный код может представить десятичные числа от 0 до 15.

Кодовые таблицы

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

Бинарный код

 Часть таблицы кода ASCII

Это интересно

Считается, что двоичное исчисление было изобретено в начале 18-го века математиком из Германии Готфридом Лейбницем. Однако, как недавно открыли ученые, задолго до этого аборигены полинезийского острова Мангареву использовали данный вид арифметики. Несмотря на то что колонизация практически полностью уничтожила оригинальные системы исчисления, ученые восстановили сложные двоичные и десятичные виды счета. Кроме того, ученый Когнитивист Нуньес утверждает, что кодирование двоичным кодом применялось в древнем Китае еще в 9-м веке до н. э. Другие древние цивилизации, например, индейцы майя, также использовали сложные комбинации десятичных и бинарных систем для отслеживания временных интервалов и астрономических явлений.

История двоичного кода

Современная система двоичного числа, основание для двоичного кода, была обнаружена Готтфридом Лейбницем в 1679 и появляется в его статье Explication de l’Arithmétique Binaire. Полное название переведено на английский язык как «Объяснение двоичной арифметики», которая использует только знаки 1 и 0 с некоторыми замечаниями по ее полноценности, и по свету это бросает на древние китайские фигуры Фу Си». (1703). Система Лейбница использует 0 и 1, как современная система двоичной цифры. Лейбниц столкнулся со мной Чинг через французского Иезуита Джоакима Бувета и отметил с восхищением, как его hexagrams соответствуют двоичным числам от 0 до 111111 и пришли к заключению, что это отображение было доказательствами основных китайских выполнений в виде философской математики, которой он восхитился. Лейбниц рассмотрел hexagrams как подтверждение универсальности его собственных религиозных верований.

Двоичные цифры были главными в богословии Лейбница. Он полагал, что двоичные числа были символическими относительно христианской идеи creatio исключая nihilo или созданием ни из чего. Лейбниц пытался найти систему, которая преобразовывает словесные заявления логики в чистое математическое. После того, как его идеи были проигнорированы, он столкнулся с классическим китайским текстом, названным мной Чинг или ‘Книга Изменений’, которые использовали тип двоичного кода. Книга подтвердила его теорию, что жизнь могла быть упрощена или уменьшена вниз до серии прямых суждений. Он создал систему, состоящую из рядов нолей и. В это время период, Leibiniz еще не нашел использование для этой системы.

Двоичные системы счисления, предшествующие Лейбницу также, существовали в древнем мире. Вышеупомянутое я Чинг, что Лейбниц столкнулся с датами с 9-го века до н.э в Китае. Двоичная система счисления меня Чинг, текст для предсказания, основана на дуальности иня и яна. Барабаны разреза с двойными тонами используются, чтобы закодировать сообщения через Африку и Азию. Индийский ученый Пингала (вокруг 5-го – 2-е века до н.э) развил двоичную систему счисления для описания просодии в его Chandashutram.

До 1450 жители острова Мангарева во Французской Полинезии использовали гибридную двойную десятичную систему счисления. В 11-м веке ученый и философ Шао Ён развили метод для подготовки hexagrams, который переписывается, хотя неумышленно, к последовательности от 0 до 63, столь же представленный в наборе из двух предметов, с инем как 0, ян как 1 и наименее значительный бит на вершине. Заказ — также лексикографический порядок на sextuples элементов, выбранных из набора с двумя элементами.

В 1605 Фрэнсис Бэкон обсудил систему, посредством чего буквы алфавита могли быть уменьшены до последовательностей двоичных цифр, которые могли тогда быть закодированы как едва видимые изменения в шрифте в любом случайном тексте. Значительно для общей теории двойного кодирования, он добавил, что этот метод мог использоваться с любыми объектами вообще: «если те объекты быть способным к двойному различию только; как Колоколами, Трубами, Огнями и Факелами, согласно сообщению о Мушкетах и любым инструментам подобной природы».

Другой математик и философ именем Джорджа Буля опубликовали работу в 1847, названную ‘Математический Анализ Логики’, которая описывает алгебраическую систему логики, теперь известной как Булева алгебра. Система Буля была основана на наборе из двух предметов, да — нет, релейный подход, который состоял три самых основных операции: И, ИЛИ, и НЕТ. Эта система не была помещена в использование, пока аспирант от Массачусетского технологического института именем Клода Шеннона не заметил, что Булева алгебра, которую он изучил, была подобна электрической цепи. Шеннон написал свой тезис в 1937, который осуществил его результаты. Тезис Шеннона стал отправной точкой для использования двоичного кода в практическом применении, таком как компьютеры, электрические цепи, и больше.

Бинарная кодировка в действии

Для стандартизации записи информации для компьютеров было разработано несколько кодировочных систем, одна из которых ASCII, базирующаяся на 8-и битной записи, получила широкое распространение. Значения в ней распределены особым образом:

  • первый 31 символ – управляющие (с        00000000 по 00011111). Служат для служебных команд, вывода на принтер или экран, звуковых сигналов, форматирования текста;
  • следующие с 32 по 127       (00100000 – 01111111) латинский алфавит и вспомогательные символы и знаки препинания;
  • остальные, до 255-го           (10000000 – 11111111) –     альтернативная, часть таблицы для специальных задач и отображения национальных алфавитов;

Расшифровка значений в ней показано в таблице.

Если вы считаете, что «0» и «1» расположены в хаотичном порядке, то глубоко ошибаетесь. На примере любого числа я вам покажу закономерность и научу читать цифры, записанные двоичным кодом. Но для этого примем некоторые условности:

  • Байт из 8 знаков будем читать справа налево;
  • Если в обычных числах у нас используются разряды единиц, десятков, сотен, то здесь (читая в обратном порядке) для каждого бита представлены различные степени «двойки»: 256-124-64-32-16-8- 4-2-1;
  • Теперь смотрим на двоичный код числа, например 00011011. Там, где в соответствующей позиции есть сигнал «1» – берем значения этого разряда и суммируем их привычным способом. Соответственно: 0+0+0+32+16+0+2+1 = 51. В правильности данного метода вы можете убедиться, взглянув на таблицу кодов.

Бинарный код

Теперь, мои любознательные друзья, вы не только знаете что такое двоичный код, но и умеете преобразовать зашифрованную им информацию.

Преобразование чисел

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

1024 512 256 128 64 32 16 8 4 2 1

Начиная с цифры 1 все цифры умножаются на два.
Точка, которая стоит после 1, называется двоичной точкой.

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

Допустим, дано двоичное число 1100012. Для перевода в десятичное запишите его как сумму по разрядам следующим образом:

То же самое чуть иначе:

Можно записать это в виде таблицы следующим образом:

512 256 128 64 32 16 8 4 2 1
1 1 1
+32 +16 +0 +0 +0 +1

Двигайтесь справа налево. Под каждой двоичной единицей напишите её эквивалент в строчке ниже. Сложите получившиеся десятичные числа.
Таким образом, двоичное число 1100012 равнозначно десятичному 4910.

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

Нужно перевести число 1011010,1012 в десятичную систему. Запишем это число следующим образом:

То же самое чуть иначе:

Или по таблице:

64 32 16 8 4 2 1 0.5 0.25 0.125
1 1 1 1 , 1 1
+64 +0 +16 +8 +0 +2 +0 +0.5 +0 +0.125

Преобразование методом Горнера

Основная статья: Метод Горнера

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

Например, двоичное число 10110112 переводится в десятичную систему так:

То есть в десятичной системе это число будет записано как 91.

Перевод дробной части чисел методом Горнера

Цифры берутся из числа справа налево и делятся на основу системы счисления (2).

Например 0,11012

Ответ: 0,11012= 0,812510

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

Допустим, нам нужно перевести число 19 в двоичное. Вы можете воспользоваться следующей процедурой :

Итак, мы делим каждое частное на 2 и записываем остаток в конец двоичной записи. Продолжаем деление до тех пор, пока в частном не будет 0. Результат записываем справа налево. То есть нижняя цифра (1) будет самой левой и т. д. В результате получаем число 19 в двоичной записи: 10011.

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

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

  • Дробь умножается на основание двоичной системы счисления (2);
  • В полученном произведении выделяется целая часть, которая принимается в качестве старшего разряда числа в двоичной системе счисления;
  • Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются над дробной частью произведения.

Пример: Требуется перевести дробное десятичное число 206,116 в дробное двоичное число.

Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам. Дробную часть 0,116 умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа:

Таким образом 0,11610 ≈ 0,00011101102

Получим: 206,11610 ≈ 11001110,00011101102

Описание

Из комбинаторики известно, что, в случае непозиционного кода, количество комбинаций (кодов) n-разрядного кода является числом , равно биномиальному коэффициенту:

(n+k−1k)=(−1)k(−nk)=(n+k−1)!k!(n−1)!{\displaystyle {n+k-1 \choose k}=(-1)^{k}{-n \choose k}={\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}}, [возможных состояний (кодов)], где:

n{\displaystyle n} — количество элементов в данном множестве различных элементов (количество возможных состояний, цифр, кодов в разряде),k{\displaystyle k} — количество элементов в наборе (количество разрядов).
В двоичной системе кодирования (n=2) количество возможных состояний (кодов) равно :

(n+k−1)!k!(n−1)!=(2+k−1)!k!(2−1)!=(k+1)!k!1!=k+1{\displaystyle {\frac {\left(n+k-1\right)!}{k!\left(n-1\right)!}}={\frac {\left(2+k-1\right)!}{k!\left(2-1\right)!}}={\frac {\left(k+1\right)!}{k!1!}}=k+1}, [возможных состояний (кодов)], то есть

описывается линейной функцией:

Nkp(k)=k+1{\displaystyle N_{kp}(k)=k+1}, [возможных состояний (кодов)], где

k{\displaystyle k} — количество двоичных разрядов.
Например, в одном 8-ми битном байте (k=8) количество возможных состояний (кодов) равно:

Nkp(k)=k+1=8+1=9{\displaystyle N_{kp}(k)=k+1=8+1=9}, [возможных состояний (кодов)].

В случае позиционного кода, число комбинаций (кодов) k-разрядного двоичного кода равно числу :

Np(k)=A¯(2,k)=A¯2k=2k{\displaystyle N_{p}(k)={\bar {A}}(2,k)={\bar {A}}_{2}^{k}=2^{k}}, где

 k{\displaystyle \ k} — число разрядов двоичного кода.

Используя два двоичных разряда можно закодировать четыре различные комбинации: 00 01 10 11, три двоичных разряда — восемь: 000 001 010 011 100 101 110 111, и так далее.
При увеличении разрядности позиционного двоичного кода на 1, количество различных комбинаций в позиционном двоичном коде удваивается.

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

В системах счисления k-разрядный двоичный код, (k-1)-разрядный двоичный код, (k-2)-разрядный двоичный код и т. д. могут отображать одно и то же число. Например, 0001, 001, 01, 1 — одно и то же число — «1» в двоичных кодах с разным числом разрядов — k.

Код Грея

Данная форма записи, по сути, является одношаговым ключом. То есть в процессе перехода от одного значения к другому меняется всего лишь один бит информации. При этом погрешность при считывании данных приводит к переходу от одного положения к другому с незначительным смещением по времени. Однако получение совершенно неверного результата углового положения при таком процессе полностью исключается. Достоинством такого кода является его способность зеркально отображать информацию. Например, инвертируя старшие биты, можно просто менять направление отсчета. Это происходит благодаря управляющему входу Complement. При этом выдаваемое значение может быть как возрастающим, так и спадающим при одном физическом направлении вращения оси. Так как информация, записанная в ключе Грея, имеет исключительно кодированный характер, который не несет реальных числовых данных, то перед дальнейшей работой требуется предварительно преобразовать его в обычную бинарную форму записи. Осуществляется это с помощью специального преобразователя – декодера Грей-Бинар. Данное устройство легко реализуется на элементарных логических элементах как аппаратным, так и программным способом.