Прочитать двоичный код. Двоичный код


Греческая Грузинская
Эфиопская
Еврейская
Акшара-санкхья Другие Вавилонская
Египетская
Этрусская
Римская
Дунайская Аттическая
Кипу
Майяская
Эгейская
Символы КППУ Позиционные , , , , , , , , , , Нега-позиционная Симметричная Смешанные системы Фибоначчиева Непозиционные Единичная (унарная)

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

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

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

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

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

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

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

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

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

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

дополнительном коде .

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

Дробное число, записываемое в двоичной системе счисления как (a n − 1 a n − 2 … a 1 a 0 , a − 1 a − 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}} , имеет величину:

(a n − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 = ∑ k = − m n − 1 a k 2 k , {\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},}

Сложение, вычитание и умножение двоичных чисел

Таблица сложения

Пример сложения «столбиком» (десятичное выражение 14 10 + 5 10 = 19 10 в двоичном виде выглядит как 1110 2 + 101 2 = 10011 2):

Пример умножения «столбиком» (десятичное выражение 14 10 * 5 10 = 70 10 в двоичном виде выглядит как 1110 2 * 101 2 = 1000110 2):

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

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

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

1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 49

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

1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49

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

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

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

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

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

1 * 2 6 + 0 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2 -1 + 0 * 2 -2 + 1 * 2 -3 = 90,625

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

1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 + 1 * 0,5 + 0 * 0,25 + 1 * 0,125 = 90,625

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

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

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

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

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

0*2 + 1 = 1
1*2 + 0 = 2
2*2 + 1 = 5
5*2 + 1 = 11
11*2 + 0 = 22
22*2 + 1 = 45
45*2 + 1 = 91

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

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

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

Например 0,1101 2

(0 + 1 )/2 = 0,5
(0,5 + 0 )/2 = 0,25
(0,25 + 1 )/2 = 0,625
(0,625 + 1 )/2 = 0,8125

Ответ: 0,1101 2 = 0,8125 10

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

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

19/2 = 9 с остатком 1
9/2 = 4 c остатком 1
4/2 = 2 без остатка 0
2/2 = 1 без остатка 0
1/2 = 0 с остатком 1

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

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

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

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

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

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

0,116 2 = 0 ,232
0,232 2 = 0 ,464
0,464 2 = 0 ,928
0,928 2 = 1 ,856
0,856 2 = 1 ,712
0,712 2 = 1 ,424
0,424 2 = 0 ,848
0,848 2 = 1 ,696
0,696 2 = 1 ,392
0,392 2 = 0 ,784
и т. д.

Таким образом 0,116 10 ≈ 0,0001110110 2

Получим: 206,116 10 ≈ 11001110,0001110110 2

Применения

В цифровых устройствах

Двоичная система используется в цифровых устройствах , поскольку является наиболее простой и соответствует требованиям:

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

В вычислительной технике широко используется запись отрицательных двоичных чисел в дополнительном коде . Например, число −5 10 может быть записано как −101 2 но в 32-битном компьютере будет храниться как 2 .

В английской системе мер

При указании линейных размеров в дюймах по традиции используют двоичные дроби, а не десятичные, например: 5¾″, 7 15 / 16 ″, 3 11 / 32 ″ и т. д.

Обобщения

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

История

  • Полный набор из 8 триграмм и 64 гексаграмм , аналог 3-битных и 6-битных цифр, был известен в древнем Китае в классических текстах книги Перемен . Порядок гексаграмм в книге Перемен , расположенных в соответствии со значениями соответствующих двоичных цифр (от 0 до 63), и метод их получения был разработан китайским учёным и философом Шао Юн в XI веке . Однако нет доказательств, свидетельствующих о том, что Шао Юн понимал правила двоичной арифметики, располагая двухсимвольные кортежи в лексикографическом порядке .
  • Наборы, представляющие собой комбинации двоичных цифр, использовались африканцами в традиционных гаданиях (таких как Ифа) наряду со средневековой геомантией .
  • В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике , которая в настоящее время известна как Булева алгебра или алгебра логики . Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
  • В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в , в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника .
  • В ноябре 1937 года Джордж Штибиц , впоследствии работавший в Bell Labs , создал на базе реле компьютер «Model K» (от англ. «K itchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами . Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа . Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман , Джон Мокли и Норберт Винер , впоследствии писавшие об этом в своих мемуарах.
  • На фронтоне здания (бывшего Вычислительного Центра СО АН СССР) в Новосибирском Академгородке присутствует двоичное число 1000110, равное 70 10 , что символизирует дату постройки здания (

Результат уже получен!

Системы счисления

Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:

Тогда число 6372 можно представить в следующем виде:

6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

Тогда число 1287.923 можно представить в виде:

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .

В общем случае формулу можно представить в следующем виде:

Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k

где Ц n -целое число в позиции n , Д -k - дробное число в позиции (-k), s - система счисления.

Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.В таблице Таб.1 представлены числа в разных системах счисления.

Таблица 1
Система счисления
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

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

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

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

С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.

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

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

Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 2, для 8-ичной СС - на 8, для 16-ичной - на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.

Пример 4 . Переведем число 159 из десятичной СС в двоичную СС:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать:

159 10 =10011111 2 .

Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.

615 8
608 76 8
7 72 9 8
4 8 1
1

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать:

615 10 =1147 8 .

Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9.

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

Рассмотрим вышеизложенное на примерах.

Пример 7 . Переведем число 0.214 из десятичной системы счисления в двоичную СС.

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 .

Следовательно можно записать:

0.214 10 =0.0011011 2 .

Пример 8 . Переведем число 0.125 из десятичной системы счисления в двоичную СС.

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

0.125 10 =0.001 2 .

Пример 9 . Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

0.214 10 =0.36C8B4 16 .

Пример 10 . Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Получили:

0.512 10 =0.406111 8 .

Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

159.125 10 =10011111.001 2 .

Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим.

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

Расшифровка бинарного кода

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

Расшифровка бинарного кода: битовая строка, интерпретируемая как бинарное число, может быть переведена в десятичное число. Например, нижний регистр буквы a, если он представлен битовой строкой 01100001 (как и в стандартном коде ASCII), также может быть представлен как десятичное число 97. Перевод бинарного кода в текст представляет собой ту же процедуру, только в обратном порядке.

Как это работает

Из чего состоит бинарный код? Код, используемый в цифровых компьютерах, основан на в которой есть только два возможных состояния: вкл. и выкл., обычно обозначаемые нулем и единицей. Если в десятичной системе, которая использует 10 цифр, каждая позиция кратна 10 (100, 1000 и т. д.), то в двоичной системе каждое цифровое положение кратно 2 (4, 8, 16 и т. д.). Сигнал двоичного кода представляет собой серию электрических импульсов, которые представляют числа, символы и операции, которые необходимо выполнить.

Устройство, называемое часами, посылает регулярные импульсы, а такие компоненты, как транзисторы, включаются (1) или выключаются (0), чтобы передавать или блокировать импульсы. В двоичном коде каждое десятичное число (0-9) представлено набором из четырех двоичных цифр или битов. Четыре основных арифметических операции (сложение, вычитание, умножение и деление) могут быть сведены к комбинациям фундаментальных булевых алгебраических операций над двоичными числами.

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

Отзывы о бинарном коде

Характер кода и данных является базовой частью фундаментального мира ИТ. C этим инструментом работают специалисты мирового ИТ-«закулисья» — программисты, чья специализация скрыта от внимания рядового пользователя. Отзывы о бинарном коде от разработчиков свидетельствуют о том, что эта область требует глубокого изучения математических основ и большой практики в сфере матанализа и программирования.

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

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

Двоичное число

В математике и цифровой электронике двоичное число — это число, выраженное в системе счисления base-2 или двоичной цифровой системе, которая использует только два символа: 0 (ноль) и 1 (один).

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

История

Современная бинарная система чисел как основа для двоичного кода была изобретена Готтфридом Лейбницем в 1679 году и представлена ​​в его статье «Объяснение бинарной арифметики». Бинарные цифры были центральными для теологии Лейбница. Он считал, что двоичные числа символизируют христианскую идею творчества ex nihilo, или творение из ничего. Лейбниц пытался найти систему, которая преобразует вербальные высказывания логики в чисто математические данные.

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

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

Новое время

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

Другой математик и философ по имени Джордж Бул опубликовал в 1847 году статью под названием «Математический анализ логики», в которой описывается алгебраическая система логики, известная сегодня как булева алгебра. Система была основана на бинарном подходе, который состоял из трех основных операций: AND, OR и NOT. Эта система не была введена в эксплуатацию, пока аспирант из Массачусетского технологического института по имени Клод Шеннон не заметил, что булева алгебра, которую он изучил, была похожа на электрическую цепь.

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

Другие формы двоичного кода

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

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

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

Двоично-кодированное десятичное значение или BCD — это двоичное кодированное представление целочисленных значений, которое использует 4-битный граф для кодирования десятичных цифр. Четыре двоичных бита могут кодировать до 16 различных значений.

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

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

Применение

Большинство современных компьютеров используют программу бинарного кода для инструкций и данных. Компакт-диски, DVD-диски и диски Blu-ray представляют звук и видео в двоичной форме. Телефонные звонки переносятся в цифровом виде в сетях междугородной и мобильной телефонной связи с использованием импульсно-кодовой модуляции и в сетях передачи голоса по IP.

08. 06.2018

Блог Дмитрия Вассиярова.

Двоичный код — где и как применяется?

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

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

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

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

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

Но намного проще обозначить наличие сигнала единицей «1», а его отсутствие – нулем «0». Тогда мы вместо всего этого сможем использовать простой и лаконичный двоичный код: 1011.

Безусловно, процессорная техника шагнула далеко вперед и сейчас чипы способны воспринимать не просто последовательность сигналов, а целые программы, записанные определенными командами, состоящими из отдельных символов. Но для их записи используется все тот же двоичный код, состоящий из нулей и единиц, соответствующий наличию или отсутствию сигнала. Есть он, или его нет – без разницы. Для чипа любой из этих вариантов – это единичная частичка информации, которая получила название «бит» (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, базирующаяся на 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. В правильности данного метода вы можете убедиться, взглянув на таблицу кодов.

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

Язык, понятный современной технике

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

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

Помимо этого, благодаря простоте «изложения» возможны различные способы записи бинарной информации:HDD дисках ;

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

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

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

Лучше, если вы сами ее мне подскажите;)

До скорых встреч.

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

Как составляется двоичная форма записи?

Давайте разберемся, каким образом формируется такой ключ. Один разряд двоичного кода может содержать всего два состояния: ноль и единицу (0 и 1). При использовании двух разрядов появляется возможность записать четыре значения: 00, 01, 10, 11. Трехразрядная запись содержит восемь состояний: 000, 001 … 110, 111. В результате получаем, что длина двоичного кода зависит от числа разрядов. Это выражение можно записать с помощью следующей формулы: N =2m, где: m - это количество разрядов, а N - число комбинаций.

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

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

В зависимости от необходимости предоставления той или иной информации, различают следующие виды ключей:

  • беззнаковые;
  • прямые целыезнаковые коды;
  • знаковые обратные;
  • знаковые дополнительные;
  • код Грея;
  • код Грея-Экспресс.;
  • дробные коды.

Рассмотрим более детально каждый из них.

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

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

Прямые целые знаковые коды

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

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

Знаковый обратный ключ

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

Знаковый дополнительный код двоичного числа

Данный вид записи не имеет перечисленных недостатков предыдущих ключей. Такие коды позволяют проводить непосредственное суммирование как положительных, так и отрицательных чисел. При этом не проводится анализ знакового разряда. Все это стало возможным благодаря тому факту, что дополнительные числа представляют собой естественное кольцо символов, а не искусственные образования, такие как прямые и обратные ключи. Более того, важным фактором является, то что произвести вычисления дополнений в двоичных кодах чрезвычайно просто. Для этого достаточно к обратному ключу добавить единицу. При использовании данного вида знакового кода, состоящего из восьми разрядов, диапазон возможных чисел составит от -128 до +127. Шестнадцатиразрядный ключ будет иметь диапазон от -32768 до +32767. В восьмиразрядных процессорах для хранения таких чисел также используют два соседних сектора.

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

Код Грея

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

Код Грея-Экспресс

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

Представление дробного числа в двоичном ключе с фиксированной запятой

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

Представление двоичного кода с плавающей запятой

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

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