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

Двои́чный код — это способ представления данных в виде кода, в котором каждый разряд принимает одно из двух возможных значений, обычно обозначаемых цифрами 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 двоичных чисел и их соответствие десятичным и шестнадцатиричным числам.

Десятичное число Шестнадцатеричное число Двоичное число
0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
15 F 1111

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

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

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

Читайте также  Свободное посещение университета в каких случаях

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

Видя что-то впервые, мы зачастую задаемся логичным вопросом о том, как это работает. Любая новая информация воспринимается нами, как что-то сложное или созданное исключительно для разглядываний издали, однако для людей, желающих узнать подробнее о двоичном коде, открывается незамысловатая истина – бинарный код вовсе не сложный для понимания, как нам кажется. К примеру, английская буква T в двоичной системе приобретет такой вид – 01010100, E – 01000101 и буква X – 01011000. Исходя из этого, понимаем, что английское слово TEXT в виде двоичного кода будет выглядеть таким вот образом: 01010100 01000101 01011000 01010100. Компьютер понимает именно такое изложение символов для данного слова, ну а мы предпочитаем видеть его в изложении букв алфавита.

На сегодняшний день двоичный код активно используется в программировании, поскольку работают вычислительные машины именно благодаря ему. Но программирование не свелось до бесконечного набора нулей и единиц. Поскольку это достаточно трудоемкий процесс, были приняты меры для упрощения понимания между компьютером и человеком. Решением проблемы послужило создание языков программирования (бейсик, си++ и т.п.). В итоге программист пишет программу на языке, который он понимает, а потом программа-компилятор переводит все в машинный код, запуская работу компьютера.

Перевод натурального числа десятичной системы счисления в двоичную систему.

Чтобы перевести числа из десятичной системы счисления в двоичную пользуются "алгоритмом замещения", состоящим из такой последовательности действий:

1. Выбираем нужное число и делим его на 2. Если результат деления получился с остатком, то число двоичного кода будет 1, если остатка нет – 0.

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

3. Продолжаем делить, вычисляя число двоичной системы из остатка, до тех пор, пока не дойдем до числа, которое делить нельзя – 0.

4. В этот момент считается, что двоичный код готов.

Для примера переведем в двоичную систему число 7:

1. 7 : 2 = 3.5. Поскольку остаток есть, записываем первым числом двоичного кода 1.

2. 3 : 2 = 1.5. Повторяем процедуру с выбором числа кода между 1 и 0 в зависимости от остатка.

3. 1 : 2 = 0.5. Снова выбираем 1 по тому же принципу.

4. В результате получаем, переведенный из десятичной системы счисления в двоичную, код – 111.

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

Перевод числа двоичной системы в десятичную.

Для этого нам нужно пронумеровать наше двоичное число 111 с конца, начиная нулем. Для 111 это 1^2 1^1 1^0. Исходя из этого, номер для числа послужит его степенем. Далее выполняем действия по формуле: (x * 2^y) + (x * 2^y) + (x * 2^y), где x – порядковое число двоичного кода, а y – степень этого числа. Подставляем наше двоичное число под эту формулу и считаем результат. Получаем: (1 * 2^2) + (1 * 2^1) + (1 * 2^0) = 4 + 2 + 1 = 7.

Немного из истории двоичной системы счисления.

Принято считать, что впервые двоичную систему предложил Готфрид Вильгельм Лейбниц, который считал систему полезной в сложных математических вычислениях и науке. Но по неким данным, до его предложения о двоичной системе счисления, в Китае появилась настенная надпись, которая расшифровывалась при использовании двоичного кода. На надписи были изображены длинные и короткие палочки. Предполагая, что длинная это 1, а короткая палочка — 0, есть доля вероятности, что в Китае идея двоичного кода существовала многим ранее его официального открытия. Расшифровка кода определила там только простое натуральное число, однако это факт, который им и остается.

Читайте также  Сколько всего диагоналей у 20 угольника

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

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

В качестве элементов системы наиболее часто выступают цифры «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 , а затем сложить полученные значения.

Читайте также  Процессор intel core i7 3840qm

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.

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

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

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

Ссылка на основную публикацию
Adblock
detector