Двои́чный код — это способ представления данных в виде кода, в котором каждый разряд принимает одно из двух возможных значений, обычно обозначаемых цифрами 0 и 1. Разряд в этом случае называется двоичным разрядом.

В случае обозначения цифрами «0» и «1», возможные состояния двоичного разряда наделяются качественным соотношением «1» > «0» и количественными значениями чисел «0» и «1».

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

Содержание

Описание [ править | править код ]

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

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

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

N k p ( k ) = k + 1 <displaystyle N_(k)=k+1> , [возможных состояний (кодов)], где

N k p ( k ) = k + 1 = 8 + 1 = 9 <displaystyle N_(k)=k+1=8+1=9> , [возможных состояний (кодов)].

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

N p ( k ) = A ¯ ( 2 , k ) = A ¯ 2 k = 2 k <displaystyle N_

(k)=<ar >(2,k)=<ar >_<2>^=2^> , где

Используя два двоичных разряда можно закодировать четыре различные комбинации: 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.

Примеры двоичных чисел [ править | править код ]

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

Десятичное числоШестнадцатеричное числоДвоичное число
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111

Пример «доисторического» использования кодов [ править | править код ]

Инки имели свою счётную систему кипу, которая физически представляла собой верёвочные сплетения и узелки. Генри Эртан обнаружил, что в узелках заложен некий код, более всего похожий на двоичную систему счисления [1] .

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

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

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

Главное – чтобы соответствующие элементы обозначали взаимоисключающие либо противоположные по значению данные.

Великолепным примером двоичного кода могут служить любые пары антонимов, к примеру, «да/нет», «белое/черное», «включено/выключено» и т.д.

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

Например, в системе, использующей базовые элементы 0 и 1, два двоичных разряда могут быть представлены следующими четырьмя комбинациями: 00, 01, 10 и 11.

Три двоичных разряда могут иметь следующий вид: 000, 001, 010, 011, 100, 101, 110 и 111.

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

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

Увеличение разрядности на единицу приведет к удвоению числа комбинаций в позиционном двоичном коде.

При двух символах (смотри примеры выше) мы имеем 4 комбинации, при трех – 8 комбинаций, при четырех – 16 комбинаций, при n символах – 2 n комбинаций.

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

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

Например, в двоичной системе счисления единицу можно представить по-разному: 1, 01, 001, 0001 и т.д.

Нумерация двоичных разрядов осуществляется справа налево.

Если взять двоичный код 01011, то первый разряд будет иметь значение 1, второй разряд – 1, третий разряд – 0, четвертый – 1 и пятый разряд – 0:

Примеры двоичного кода

С помощью трех двоичных разрядов можно обозначить восемь десятичных чисел от 0 до 7:

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

Эта таблица отражает перевод десятичных чисел в двоичный код.

Фото 1. Выключатели — прекрасный пример двоичного кода

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

Чтобы перевести двоичный код обратно в десятичный, нужно 1-ый разряд двоичного кода умножить на 1 (или на 2 0 ), 2-ой разряд – на 2 (или на 2 1 ), третий разряд – на 4 (или на 2 2 ), n-ый разряд — на 2 n-1 , а затем сложить полученные значения.

111 → 1 * 2 2 + 1 * 2 1 + 1 * 2 0 = 4 + 2 + 1 = 7

101 → 1 * 2 2 + 0 * 2 1 + 1 * 2 0 = 4 + 0 + 1 = 5

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

Основное назначение двоичного кода – шифрование и кодирование информации.

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

Допустим, нам необходимо закодировать фразу «ХОЛОДНОЕ ЛЕТО».

Установим произвольные соответствия букв двоичному коду: Х – 000, О – 001, Л – 010, Д – 011, Н – 100, Е – 101, Т – 111.

Фото 2. Двоичный код лежит в основе двоичной системы счисления

Тогда закодированная фраза примет следующий вид: 000001010001011100001101010101111001 (36 символов).

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

В данном случае мы имеем дело с однозначно декодируемым кодом (то есть код может быть расшифрован одним единственным способом).

Для сокращения длины кода может применяться неравномерный двоичный код.

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

Например, если Х будет иметь обозначение 01, О – 00, Л – 100, Д – 101, Н – 110, Е – 111, Т – 1111, то фразе «ХОЛОДНОЕ ЛЕТО» будет соответствовать строка 01001000010111000111100111111100 (32 символа).

В данной фразе будет однозначно декодироваться фрагмент «ХОЛОДНО», после чего дешифровщику придется ломать голову над выбором приемлемой трактовки кода: «Е ЛЕТО», «Е ЛЕЕЛ», «Е ЛТЕО», «ТОЕЕЛ» и т.д.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тема: Информация вокруг нас

Урок: Кодирование информации. Двоичное кодирование. Единицы измерения информации

1. Введение

На данном уроке будут рассмотрены следующие вопросы:

1. Кодирование как изменение формы представления информации.

2. Как компьютер распознает информацию?

3. Как измерить информацию?

4. Единицы измерения информации.

В мире кодов

Зачем люди кодируют информацию?

1. Скрыть ее от других (зеркальная тайнопись Леонардо да Винчи, военные шифровки).

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

3. Для более легкой обработки и передачи (азбука Морзе, перевод в электрические сигналы — машинные коды).

Кодирование — это представление информации с помощью некоторого кода.

Код — это система условных знаков для представления информации.

Способы кодирования информации

1. Графический (см. Рис. 1) (с помощью рисунков и знаков).

Рис. 1. Система сигнальных флагов (Источник)

2. Числовой (с помощью чисел).

Например: 11001111 11100101.

3. Символьный (с помощью символов алфавита).

Например: НКМБМ ЧГЁУ.

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

Средством кодирования и декодирования служит кодовая таблица соответствия. Например, соответствие в различных системах счисления — 24 — XXIV, соответствие алфавита каким-либо символам (Рис. 2).

Рис. 2. Пример шифра (Источник)

Примеры кодирования информации

Примером кодирования информации является азбука Морзе (см. Рис. 3).

Рис. 3. Азбука Морзе (Источник)

В азбуке Морзе используется всего 2 символа — точка и тире (короткий и длинный звук).

Еще одним примером кодирования информации является флажковая азбука (см. Рис. 4).

Рис. 4. Флажковая азбука (Источник)

Также примером является азбука флагов (см. Рис. 5).

Рис. 5. Азбука флагов (Источник)

Всем известный пример кодирования — нотная азбука (см. Рис. 6).

Рис. 6. Нотная азбука (Источник)

Рассмотрим следующую задачу:

Используя таблицу флажковой азбуки (см. Рис. 7), необходимо решить следующую задачу:

Старший помощник Лом сдает экзамен капитану Врунгелю. Помогите ему прочитать следующий текст (см. Рис. 8):

2. Кодирование информации

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

Кодирование — это операция преобразования знаков или групп знаков одной знаковой системы в знаки или группы знаков другой знаковой системы.

Примером может служить язык жестов (см. Рис. 9).

Рис. 9. Азбука жестов (Источник)

3. Сигналы

Вокруг нас существуют преимущественно два сигнала, например:

— Светофор: красный — зеленый;

— Лампа: горит — не горит;

Всё это сигналы, обозначающие количество информации в 1 бит.

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

4. Распознавание информации компьютером

Компьютер — это электрическая машина, работающая на электронных схемах. Чтобы компьютер распознал и понял вводимую информацию, ее надо перевести на компьютерный (машинный) язык.

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

Это электрические сигналы: проходит ток или не проходит ток.

Машинный двоичный язык — последовательность "0" и "1". Каждое двоичное число может принимать значение 0 или 1.

Каждая цифра машинного двоичного кода несет количество информации, равное 1 бит.

Проводят электрический ток

Не проводят электрический ток

Участок поверхности магнитного носителя (жесткий диск, дискета)

Участок поверхности лазерного диска

Не отражает луч

5. Бит и байт

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

Строка из 8 битов называется байт. Эту строку компьютер обрабатывает как отдельный символ (число, букву).

Рассмотрим пример. Слово ALICE состоит из 5 букв, каждая из которых на языке компьютера представлена одним байтом (см. Рис. 10). Стало быть, Alice можно измерить как 5 байт.

Рис. 10. Двоичный код (Источник)

6. Единицы измерения информации

Кроме бита и байта, существуют и другие единицы измерения информации.