Введение
Кодирование данных с использованием 0 и 1 – двоичная форма компьютерного программного обеспечения.
the binary form of computer software
Двоичный код представляет текст, инструкции процессора или любые другие данные, используя систему из двух символов. Обычно в качестве этих символов используются "0" и "1" из двоичной системы счисления. Двоичный код присваивает последовательность двоичных цифр, также известных как биты, каждому символу, инструкции и т.д. Например, двоичная строка из восьми бит (которая также называется байтом) может представлять любое из 256 возможных значений и, следовательно, широкий спектр различных элементов. В вычислительной технике и телекоммуникациях двоичные коды используются для различных методов кодирования данных, таких как строки символов, в битовые строки. Эти методы могут использовать строки фиксированной или переменной длины. В двоичном коде с фиксированной длиной каждая буква, цифра или другой символ представляется битовой строкой одинаковой длины; эта битовая строка, интерпретируемая как двоичное число, обычно отображается в таблицах кодов в восьмеричной, десятичной или шестнадцатеричной системе счисления. Существует множество наборов символов и множество кодировок для них. Битовая строка, интерпретируемая как двоичное число, может быть преобразована в десятичное число. Например, строчная буква "a", если она представлена битовой строкой 01100001 (как это происходит в стандартном коде ASCII), также может быть представлена десятичным числом "97".
История бинарных кодов
Современная двоичная система счисления, являющаяся основой двоичного кода, была изобретена Готфридом Лейбницем в 1689 году и представлена в его статье Explication de l'Arithmétique Binaire. Полное название переводится на английский язык как «Объяснение двоичной арифметики», в которой используются только символы 1 и 0, с некоторыми замечаниями о её полезности и о том, какое освещение она проливает на древнекитайские фигуры Фу Си. В системе Лейбница используются 0 и 1, как и в современной двоичной системе счисления. Лейбниц познакомился с «И Цзин» через французского иезуита Йоахима Буве и с увлечением отметил, как её гексаграммы соответствуют двоичным числам от 0 до 111111, и пришел к выводу, что это соответствие является свидетельством значительных китайских достижений в той философской визуальной двоичной математике, которой он восхищался. Двоичные числа занимали центральное место в теологии Лейбница. Он верил, что двоичные числа символизируют христианскую идею творения из ничего (creatio ex nihilo). Лейбниц пытался найти систему, которая преобразует логические словесные утверждения в чисто математические. После того как его идеи были проигнорированы, он наткнулся на классический китайский текст под названием «И Цзин» или «Книга перемен», в котором использовалось 64 гексаграммы шестибитного визуального двоичного кода. Эта книга подтвердила его теорию о том, что жизнь можно упростить или свести к ряду простых утверждений. Он создал систему, состоящую из рядов нулей и единиц. В этот период Лейбниц ещё не нашёл применения этой системе. Двоичные системы, предшествовавшие Лейбницу, также существовали в древнем мире. Упомянутый «И Цзин», с которым познакомился Лейбниц, датируется IX веком до нашей эры в Китае. Двоичная система «И Цзин», текста для гадания, основана на дуальности инь и ян. Разрезанные барабаны с бинарными тонами используются для кодирования сообщений в Африке и Азии. Жители острова Мангарева во Французской Полинезии использовали гибридную двоично-десятичную систему до 1450 года. В XI веке учёный и философ Шао Юн разработал метод расположения гексаграмм, который соответствует, хотя и непреднамеренно, последовательности от 0 до 63, представленной в двоичном виде, где инь соответствует 0, ян – 1, а младший бит находится наверху. Этот порядок также является лексикографическим порядком на шестёрках элементов, выбранных из двухэлементного множества. В 1605 году Фрэнсис Бэкон обсуждал систему, в которой буквы алфавита можно было бы свести к последовательностям двоичных цифр, которые затем можно было бы закодировать в виде едва заметных изменений шрифта в любом произвольном тексте. Джордж Буль опубликовал в 1847 году работу под названием «Математический анализ логики», в которой описывается алгебраическая система логики, ныне известная как булева алгебра. Система Буля была основана на двоичном подходе – да/нет, включено/выключено – и состояла из трёх основных операций: И, ИЛИ и НЕ. Эта система не была внедрена в практику, пока студент Массачусетского технологического института Клод Шеннон не заметил, что булева алгебра, которую он изучал, похожа на электрическую схему. В 1937 году Шеннон написал магистерскую диссертацию «Символический анализ реле и коммутационных схем», в которой реализовал свои выводы. Диссертация Шеннона стала отправной точкой для использования двоичного кода в практических приложениях, таких как компьютеры, электрические схемы и многое другое.
Другие формы бинарного кода
Битовая строка — не единственный тип двоичного кода: фактически, двоичная система в общем смысле — это любая система, допускающая только два варианта, например, переключатель в электронной схеме или простое условие «истина» или «ложь».
Брайль
Брайль – это тип двоичного кода, широко используемый слепыми для чтения и письма на ощупь, названный в честь его создателя, Луи Брайля. Эта система состоит из ячеек, каждая из которых содержит шесть точек, расположенных в три столбца, где каждая точка может быть выпуклой или плоской. Различные комбинации выпуклых и плоских точек позволяют представлять все буквы, цифры и знаки препинания.
Багуа
Багуа – это диаграммы, используемые в фэн-шуй, даосской космологии и изучении «И Цзин». Багуа состоит из 8 триграмм; слово «ба» означает 8, а «гуа» – фигуру гадания. То же слово используется и для обозначения 64 гуа (гексаграмм). Каждая фигура состоит из трех линий (яо), которые могут быть прерывистыми (инь) или сплошными (ян). Взаимосвязи между триграммами представлены в двух структурах: изначальной, «Небо до создания» или багуа Фуси, и проявленной, «Небо после создания» или багуа короля Вэня. (См. также последовательность короля Вэня из 64 гексаграмм).
Ифа, Илм Аль-Рамль и Геомантия
В африканских религиях, таких как йоруба, игбо и эве, система гадания Ifá/Ifé представляет собой сложную традиционную церемонию, результатом которой являются 256 оракулов, составленных из 16 символов, где 256 = 16 x 16. Посвященный жрец, или Бабалаво, запомнивший оракулы, просил жертвоприношения от обращающихся за советом и возносил молитвы. Затем для получения случайных двоичных чисел использовались орехи для гадания или пара цепочек, которые вычерчивались песчаным материалом на фигурированном деревянном подносе "Опун", символизирующем полноту судьбы. С распространением исламской культуры Ifé/Ifá был воспринят как "Наука о песке" (ilm al raml), которая затем распространилась и превратилась в "Науку о чтении знаков на земле" (геомантию) в Европе. Предполагается, что это один из возможных источников вдохновения для компьютерной науки, поскольку геомантия появилась в Европе раньше (около 12 века, описана Гюгом Сантальей), чем И-Цзин (17 век, описана Готфридом Вильгельмом Лейбницем).
Код ASCII
Американский стандартный код для обмена информацией (ASCII) использует 7-битный двоичный код для представления текста и других символов в компьютерах, коммуникационном оборудовании и других устройствах. Каждой букве или символу присвоен номер от 0 до 127. Например, строчная буква "a" представлена битовой строкой 1100001 (что соответствует десятичному числу 97).
Десятичная цифра с бинарным кодом
Бинарно-кодированный десятичный (BCD) – это двоичное кодированное представление целых чисел, использующее 4-битный ниббл для кодирования десятичных цифр. Четыре двоичных бита могут кодировать до 16 различных значений, однако в числах, закодированных в BCD, только десять значений в каждом ниббле допустимы и кодируют десятичные цифры от нуля до девяти. Оставшиеся шесть значений являются недопустимыми и могут приводить либо к машинному исключению, либо к неопределенному поведению, в зависимости от реализации BCD-арифметики на конкретном компьютере. BCD-арифметика иногда предпочтительнее форматов чисел с плавающей точкой в коммерческих и финансовых приложениях, где сложное поведение округления чисел с плавающей точкой нежелательно.