В чем главное достоинство двоичного кодирования
Преимущества двоичного кодирования информации
Вы будете перенаправлены на Автор24
Почему мы считаем десятками
В повседневной человеческой практике используется десятичная система счисления. Она кажется настолько привычной, что люди редко задумываются о ее природе. Кажется, что по-другому и быть не может.
Позднее привычка считать десятками закрепилась в виде арабских цифр и составляемых из них чисел:
Те, кто немного знаком с программированием знают, что этот ряд удобнее было бы записать как
Именно с номера 0, а не с единицы принято начинать в большинстве языков программирования отсчет ячеек массивов, итераций в циклах и т.п.
Более внимательный взгляд на историю математики позволяет увидеть, что в прошлом люди были не так уж консервативны в том, что касается счета.
Ответ, скорее всего, заключается в том, что в связи с развитием торговли в средние века людям было удобнее считать дюжинами, чем десятками. 12 хорошо делится на 2, 3, 4, 6. Число оказалось настолько удобным, что даже количество минут в часе и часов в сутках сделали кратным 12.
Готовые работы на аналогичную тему
Рисунок 1. Готфрид Вильгельм Лейбниц. Автор24 — интернет-биржа студенческих работ
Двоичная система счисления как математический курьез
Рисунок 2. Алгоритм перевода чисел из десятичной системы в двоичную. Автор24 — интернет-биржа студенческих работ
Этот способ, конечно же, примитивен и неудобен. Уже для записи числа 100 потребуется слишком много места. Но если использовать перенос разрядов, как мы это делаем при десятичном счете, то двоичная система оказывается не так уж и абсурдна. Например, для числа 15 у нас нет специальной цифры, поэтому мы прибегаем к ее представлению в виде 1 десятка и 5 единиц. Для записи числа 123 задействуем уже 3 разряда. Оказывается, так можно поступать и в любой другой системе счисления, в том числе в двоичной:
Длина чисел по-прежнему растет быстрее, чем в десятичной системе, но уже не так угрожающе быстро.
Почему двоичная система удобна для создания счетных машин
У двоичной (бинарной) системы есть одно важное преимущество: она очень устойчива, и если уж создавать механизмы, способные автоматизировать арифметические операции, то на ее основе. Уже Лейбниц пытался воплотить эту идею, но не довел до конца. Видимо, не хватило инженерных навыков.
Преимущества двоичной системы для создания электронных вычислительных машин понять довольно легко. Допустим, мы решили построить электронный компьютер, основанный на десятичной системе счисления. Для кодировки 10 цифр нам потребуется 10 уровней напряжения.
Предположим, что это будут 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 вольт соответственно. Если подавать такие сигналы на обычный стрелочный вольтметр, то окажется, что можно хорошо на глаз различить показания для уровней, скажем, в 2 и 4 вольта. А вот разница между 8 и 9 вольтами будет едва заметна, и даже 7 вольт от 9 человек с ослабленным зрением не сможет четко различить. Зато разница между отсутствием напряжения (0) и его наличием (1) всегда хорошо заметна.
Системы счисления, производные от двоичной
Итак, в электронно-вычислительных машинах (компьютерах) вся информация хранится и обрабатывается в бинарном формате. Каждому разряду в двоичном числе соответствует 0 или 1. Такой разряд называется битом. Например, с помощью двух бит можно записать числа
Предпринимались небезуспешные попытки создавать компьютеры на основе троичной логики, но такие машины не обрели особой популярности.
Рисунок 3. Бит и байт. Автор24 — интернет-биржа студенческих работ
Со временем программисты пришли к выводу, что байты удобно записывать в виде 2-х шестнадцатеричных знаков. В шестнадцатеричном счислении, помимо обычных арабских цифр содержатся дополнительные символы:
Чтобы записать число от 0 до 255 в 16-ричной кодировке, нужно задействовать два таких символа (их иногда называют полубайтами, тетрадами, нибблами и даже гексадецитами). Признаком того, что число записано в такой форме являются символы 0x в его начале
Помимо шестнадцатеричной в программировании иногда применяется восьмеричная система счисления.
Информатика. 7 класс
Достоинство двоичного кодирования
Выберите верный ответ. В чём главное достоинство двоичного кодирования?
Простота технической реализации
Можно представить любое число
Двоичный код
Выберите верный ответ.
Перевод числа
Переведите число в двоичный код.
Преобразования информации
Заполните схему перевода символа произвольного алфавита в двоичный код.
Двоичный код
Записав двоичный код чисел, вы разгадаете кроссворд (слова откроются автоматически).
Недостаток двоичного кодирования
Впишите пропущенные слова.
Двоичный код
Выделите верный ответ.
Укажите количество комбинаций для четырёхразрядного двоичного кода.
Азбука Морзе
Подчеркните верный ответ.
К какому коду можно отнести Азбуку Морзе?
Двоичный код
Упорядочите двоичный код (расставьте числа в порядке возрастания).
Выберите верный ответ.
Саша шифрует русские слова (последовательности букв), записывая вместо каждой буквы её код:
Некоторые цепочки можно расшифровать не одним способом. Например, 00010101 может означать не только СКА, но и СНК. Даны три кодовые цепочки:
Найдите среди них ту, которая имеет только одну расшифровку, и укажите в ответе расшифрованное слово.
Информатика. 7 класс
Достоинство двоичного кодирования
Выберите верный ответ. В чём главное достоинство двоичного кодирования?
Простота технической реализации
Можно представить любое число
Двоичный код
Выберите верный ответ.
Перевод числа
Переведите число в двоичный код.
Преобразования информации
Заполните схему перевода символа произвольного алфавита в двоичный код.
Двоичный код
Записав двоичный код чисел, вы разгадаете кроссворд (слова откроются автоматически).
Недостаток двоичного кодирования
Впишите пропущенные слова.
Двоичный код
Выделите верный ответ.
Укажите количество комбинаций для четырёхразрядного двоичного кода.
Азбука Морзе
Подчеркните верный ответ.
К какому коду можно отнести Азбуку Морзе?
Двоичный код
Упорядочите двоичный код (расставьте числа в порядке возрастания).
Выберите верный ответ.
Саша шифрует русские слова (последовательности букв), записывая вместо каждой буквы её код:
Некоторые цепочки можно расшифровать не одним способом. Например, 00010101 может означать не только СКА, но и СНК. Даны три кодовые цепочки:
Найдите среди них ту, которая имеет только одну расшифровку, и укажите в ответе расшифрованное слово.
Язык как способ представления информации, двоичная форма представления информации, ее особенности и преимущества
Содержание:
ВВЕДЕНИЕ
Слово «информация» происходит от латинского слова informatio, что в переводе означает сведение, разъяснение, ознакомление. Понятие «информация» является базовым в курсе информатики, невозможно дать его определение через другие, более «простые» понятия.
В случае с понятием «информация» проблема его определения еще более сложная, так как оно является общенаучным понятием. Данное понятие используется в различных науках (информатике, кибернетике, биологии, физике и др.), при этом в каждой науке понятие «информация» связано с различными системами понятий.
Для обмена информацией с другими людьми человек использует естественные языки (русский, английский, китайский и др.), то есть информация представляется с помощью естественных языков. В основе языка лежит алфавит, то есть набор символов (знаков), которые человек различает по их начертанию. В основе русского языка лежит кириллица, содержащая 33 знака, английский язык использует латиницу (26 знаков), китайский язык использует алфавит из десятков тысяч знаков (иероглифов).
Последовательности символов алфавита в соответствии с правилами грамматики образуют основные объекты языка — слова. Правила, согласно которым образуются предложения из слов данного языка, называются синтаксисом. Необходимо отметить, что в естественных языках грамматика и синтаксис языка формулируются с помощью большого количества правил, из которых существуют исключения, так как такие правила складывались исторически.
Наряду с естественными языками были разработаны формальные языки (системы счисления, язык алгебры, языки программирования и др.). Основное отличие формальных языков от естественных состоит в наличии строгих правил грамматики и синтаксиса.
Например, системы счисления можно рассматривать как формальные языки, имеющие алфавит (цифры) и позволяющие не только именовать и записывать объекты (числа), но и выполнять над ними арифметические операции по строго определенным правилам. Некоторые языки используют в качестве знаков не буквы и цифры, а другие символы, например химические формулы, ноты, изображения элементов электрических или логических схем, дорожные знаки, точки и тире (код азбуки Морзе) и другие.
Знаки могут иметь различную физическую природу. Например, для представления информации с использованием языка в письменной форме используются знаки, которые являются изображениями на бумаге или других носителях, в устной речи в качестве знаков языка используются различные звуки (фонемы), а при обработке текста на компьютере знаки представляются в форме последовательностей электрических импульсов (компьютерных кодов)
ЯЗЫК КАК СПОСОБ ПРЕДСТАВЛЕНИЯ ИНФОРМАЦИИ.
ДВОИЧНАЯ ФОРМА ПРЕДСТАВЛЕНИЯ ИНФОРМАЦИИ.
Понятие информация является одним из фундаментальных в современной науке вообще и базовым для изучаемой ними информатики. Информацию рассматривают в качестве важнейшей сущности мира, в котором мы живем.
Язык – это средство отражения и познания окружающего мира. Информационный процесс может осуществляться только при наличии языка.
В зависимости от задач, которые мы перед собой ставим, можно использовать разные способы представления информации.
Некоторый набор символов алфавита образует слово, а число этих символов есть его длина. От изменения длины слова, очевидно, будет меняться и информация, заключенная в нем. Чтобы разобраться в изменениях информации, необходима ее оценка (измерение).
Одно и та же информация может существовать в различных формах. Для представления информации удобно использовать знаковые системы. Знаковая система состоит из определенного набора знаков и из правил работы с ними.
Знак – это сущность, имеющая некоторый смысл и некоторый внешний вид. Физический носитель знака может быть различным: для передачи одного и того же знака может использоваться в устной речи – звук, в письменной речи – буква, в памяти компьютера – последовательность электрических импульсов.
Процесс перевода информации из одной формы представления в другую называют кодированием информации. С помощью двух цифр можно закодировать любое сообщение. Достоинство двоичного кодирования – простота реализации. Недостаток – длинные коды. Но в технике легче иметь дело с большим числом простых однотипных элементов, чем с большим числом сложных.
Двоичное кодирование информации
Теория кодирования – это раздел теории информации, связанный с задачами кодирования и декодирования сообщений, поступающих к потребителям и посылаемых из источников информации.
Теория кодирования близка к древнейшему искусству тайнописи – криптографии. Над разработкой различных шифров трудились многие известные ученые: философ Ф. Бэкон, математики Д.Кардано, Д. Валлис. Одновременно с развитием методов шифровки развивались приемы расшифровки, или криптоанализа.
В середине ХIХ в. ситуация изменилась. Изобретение телефона и искрового телеграфа поставило перед учеными и инженерами проблему создания новой теории кодирования. Первой ориентированной на технику системой кодирования оказалась азбука Морзе, в которой принято троичное кодирование (точка, тире, пауза).
Двоичное кодирование – один из распространенных способов представления информации. В вычислительных машинах, в роботах и станках с числовым программным управлением, как правило, вся информация, с которой имеет дело устройство, кодируется в виде слов двоичного алфавита.
Двоичный алфавит состоит из двух цифр 0 и 1.
Цифровые ЭВМ (персональные компьютеры относятся к классу цифровых) используют двоичное кодирование любой информации. В основном это объясняется тем, что построить техническое устройство, безошибочно различающее 2 разных состояния сигнала, технически оказалось проще, чем то, которое бы безошибочно различало 5 или 10 различных состояний.
К недостаткам двоичного кодирования относят очень длинные записи двоичных кодов, что затрудняет работу с ними.
Двоичная система используется в цифровой электронике, компьютерной технике. Двоичная система в современном представлении была полностью описана немецким философом и математиком Готтфридом Лейбницем в XVII веке в работе «Explication de l’Arithmetique Binaire» («Объяснение бинарной арифметики»). Компьютер обрабатывает информацию только в закодированном виде.
Создатели компьютера отдают предпочтение именно двоичной системе счисления, потому что в техническом устройстве наиболее просто реализовать два противоположных физических состояния. В компьютере «бит» является наименьшей возможной единицей информации. Объем информации, записанной двоичными знаками в памяти компьютера или на внешнем носителе информации подсчитывается просто по количеству требуемых для такой записи двоичных символов.
Для того чтобы при кодировании информация не потерялась и не исказилась, нужно устанавливать соответствие между двумя знаковыми системами. Составляют таблицы соответствия между знаками или группами знаков. Такие таблицы называются кодовыми. Язык является знаковой системой, соответственно в нем имеется набор знаков и список правил для работы с ними. Правила описывают способы составления из элементарных, основных знаков более сложных конструкций.
Двоичная система счисления является основной системой представления информации в памяти компьютера.
Язык некоторых компьютеров первого поколения основывался только с 50 – х годов 20 – го века, начала применяться практически во всех вычислительных машинах двоичная система, это было обусловлено:
Экономичностью аппаратной реализацией всех схем ЭВМ для радиоэлектронных элементов (радиоламп, полупроводниковых элементов), которые в основном используются в вычислительных машинах;
Более простой реализацией алгоритмов выполнения арифметических и логорических операций;
Более надежный физической реализацией основных функций, так как они имеют всего два состояния (0 и 1), это состояние надежно и помехоустойчиво.
Объем информации, записанной двоичными знаками в памяти компьютера или на внешнем носителе информации подсчитывается просто по количеству требуемых для такой записи двоичных символов.
Двоичное слово из восьми знаков содержит один байт информации, 1024 байта образуют килобайт, 1024 килобайта – мегабайт, а 1024 мегабайта – гигабайт.
Двоичная система используется в цифровых вычислительных устройствах, поскольку является простой и удовлетворяет следующим требованиям:
Чем меньше значений существует в системе, тем проще изготовить отдельные элементы;
Чем меньше количество состояний у элемента, тем выше помехоустойчивость и тем быстрее он может работать;
Простота создания таблиц сложения и умножения – основных арифметических операций над числами.
Система счисления в зависимости от способов изображения чисел делится на:
Примером непозиционной системы счисления может служить римская система, в которой для каждого числа используется специфическое сочетание символов, например ХIV, CXXVII и тому подобное.
Позиционная система счисления определяется ее основанием – числом используемых в ней чисел. В позиционных системах значение каждой цифры определяется ее местом в числе, любое число может быть представлено суммой произведения цифры. Среди позиционных систем счисления наибольшее распространение имеет двоичная система счисления с основанием 2. В ней используются только две цифры 0 и 1 (да – нет, ложь – истина, включено – выключено, есть сигнал – нет сигнала и тому подобное).
Переход от десятичной записи к двоичной осуществляется легко: десятичное число делится на два, затем на два делится частное, затем – новое частное и так до тех пор, пока не будет получено последнее частное (равное 1), причем каждый раз записывается остаток от деления. Выписав последнее частное (1) и вслед за ним в обратном порядке все остатки от деления исходного числа на два, мы получим двоичный эквивалент исходного числа. Чтобы записать двоичное число в десятичной системе, необходимо обратить процедуру: умножить первую цифру слева на 2, к полученному результату прибавить вторую цифру слева, полученную сумму прибавить к третьей цифре слева и так далее до тех пор, пока мы не прибавим последнюю (самую правую) цифру двоичного числа.
Десятичное число 6 в двоичной системе записывается как 0110 и расшифровывается так:
ля перевода необходимо разложить число по основанию системы счисления и посчитать результат.
Двоичное число 1011 можно прочесть как десятичное 11:
Существуют формальные правила перевода чисел из одной системы в другую, в частности, двоичного числа в десятичное и наоборот. Например, для перевода целого десятичного числа в двоичное нужно делить его пополам до тех пор, пока в остатке не образуется 0 и 1, а затем записать остатки справа налево.
Первый остаток – это младший нулевой разряд искомого числа. Последнее частное – старшая цифра искомого числа
Таким образом, 13 = 1101.
Количество цифр (бит) в числе определяет разрядность числа. Биты в числе нумеруются справа, налево начиная с нулевого разряда.
Общая формула для подсчета количества кодируемых значений в двоичной системе счисления имеет вид:
где N – количество кодируемых значений, m- число разрядов двоичной системы.
Числа, записанные в двоичной системе, требуют большего числа знаков, чем их аналоги в десятичной системе, в двоичной, и в десятичной системе суть состоит в позиционном принципе записи чисел, поэтому ясно, что современные суперкомпьютеры стали возможны благодаря тому, что четыре тысячи лет назад в Месопотамии было совершено важнейшее открытие в области обозначения чисел.
В последние годы в области прикладной математики, особенно в компьютерах, очень важное значение приобрела двоичная система счисления.
Двоичное кодирование информации
Любая информация внутри компьютера хранится и обрабатывается в виде длинного кода, состоящего всего из двух символов. Этот код называется двоичным или бинарным.
По своей сути он очень похож на всем известный код Морзе, в котором двумя символами (длинный и короткий импульс) шифруются буквы для передачи текстовой информации по проводам или другим способом.
Компьютеры же пошли значительно дальше. В них в форме бинарного кода хранятся не только текстовые данные, но и программы, музыка, изображения и даже видео высокой четкости.
Перед выводом информации на экран, в аудиосистему или распечатыванием, компьютер «переводит» ее в понятный человеку язык. Но внутри компьютера она хранится и обрабатывается исключительно в виде двоичного кода.
Если вы не программист, знать систему использования бинарного кода в совершенстве не обязательно. Для понимания принципов работы компьютера достаточно разобраться с вопросом в общих чертах. В этом вам и поможет предлагаемая статья.
Содержание статьи
Почему в компьютере используется двоичный код
Люди для записи текстовой информации используют буквы. В русском языке их 33. Комбинациями из десяти цифр (от 0 до 9) мы записываем числовые данные. При работе с графической информацией пользуемся палитрой из миллионов цветов. Наши уши различают звуки в диапазоне от 16 до 20000 Гц.
Если добавить к этому обоняние, вкусовые и тактильные ощущения, получится огромнейшее разнообразие информационных импульсов, которые может воспринимать, хранить и обрабатывать наш мозг.
При помощи технических средств невозможно воссоздать аналогичную систему работы с информацией.
Людям проще всего создавать приборы, принимающие одно из двух состояний: лампочка горит или нет, магнитное поле есть или его нет и т.д. И значительно сложнее, например, заставить лампочку в разных ситуациях светиться одним из 10 цветов. Не говоря уже о 10 миллионах цветов, воспринимаемых человеком.
В технике намного удобнее иметь дело с множеством простых элементов, чем с небольшим количеством сложных.
Чтобы иметь возможность хранить и обрабатывать информацию техническими средствами, люди решили переводить ее на максимально простой «язык», состоящий всего из двух «букв» – так называемый двоичный или бинарный код.
Используя разные комбинации большого количества двух символов, в бинарном коде можно зашифровать любую числовую, текстовую, звуковую или графическую информацию.
Компьютер же является ничем иным, как машиной, предназначенной для хранения и обработки информации в таком виде.
Перевод данных в двоичный код называется кодированием.
Противоположный процесс, в результате которого бинарный код превращается в привычную для людей информацию, называется декодированием.
Компьютер осуществляет кодирование «на лету» при получении данных извне: ввод текста пользователем с клавиатуры, запись видео с веб-камеры, запись звука с микрофона и т.д.
Перед выводом информации на экран, в аудиосистему или же ее распечатыванием, происходит обратный процесс (декодирование).
Как осуществляется кодирование различных типов данных, рассмотрим немного ниже. Сначала давайте разберемся, из каких же символов формируется двоичный код внутри компьютера и как он там хранится.
С технической стороны компьютерный двоичный код реализуется наличием или отсутствием определенных свойств (импульсов) у мельчайших запоминающих элементов. Эти импульсы могут быть:
• фотооптическими
Так, поверхность любого оптического диска (CD, DVD или BluRay) состоит из спирали, которую формируют мелкие отрезки. Каждый из них может быть либо темного, либо светлого цвета. Диск быстро вращается в дисководе. На его спиральной дорожке фокусируется лазер, отражение которого попадает на фотоэлемент. Темные участки спирали поглощают свет и не передают его на фотоэлемент, светлые – наоборот, отражая свет, передают импульс фотоэлементу. В результате фотоэлемент получает информацию, зашифрованную в дорожке диска в виде темных и светлых точек.
Например, внутри жесткого диска находится быстро вращающаяся пластина. Вся ее поверхность тоже представляет собой спираль, состоящую из последовательности миллионов мелких участков. Каждый из них является элементом, который может принимать одно из двух состояний: «намагниченное», «ненамагниченное». Эти элементы и формируют двоичный код, в котором кодируется какая-то информация. Считывание состояния элементов осуществляется специальной головкой, которая быстро движется по поверхности пластины;
Например, оперативная память компьютера является микросхемой, состоящей из миллионов маленьких ячеек, созданных из микроскопических транзисторов и конденсаторов. Каждая такая ячейка может либо содержать электрический заряд, либо нет. Комбинации заряженных и разряженных ячеек оперативной памяти и формируют в ней двоичный код.
В аналогичной форме информация хранится и во всех других запоминающих микросхемах (флешки, SSD-носители и др.).
Процессор компьютера обрабатывает двоичный код тоже в виде электрических импульсов.
Иногда можно встретить ошибочное мнение, что бинарный код внутри компьютера записан в виде обычных нулей и единиц. Это следствие непонимания технической стороны вопроса. Привычных для нас нулей и единиц в компьютере нет. «Символами» компьютерного двоичного кода является наличие или отсутствие у мельчайшего запоминающего элемента определенного свойства (см. выше).
Чтобы было нагляднее, в учебных материалах отсутствие у элемента такого свойства лишь условно обозначают нулем, а его наличие – единицей. Но с таким же успехом их можно бы было обозначать точкой и тире или крестиком и ноликом.
Единицы компьютерной информации
В предыдущем пункте уже говорилось о том, что бинарный код внутри компьютера хранится в виде комбинаций большого количества элементов, каждый из которых может иметь одно из двух состояний.
Такой мельчайший элемент, участвующий в формировании бинарного кода, называется битом.
Битом является, например, каждая темная или светлая точка дорожки оптического диска, каждая запоминающая ячейка оперативной памяти компьютера и т.д.
Но каждый отдельный бит сам по себе не имеет практической ценности. Для кодирования информации используются блоки из нескольких битов.
Представим, например, что в каком-то запоминающем устройстве содержится только один бит. В нем можно будет закодировать всего одно из двух состояний чего либо, например, одну из двух цифр или один из двух цветов. Понятное дело, что практическая ценность такого носителя минимальна.
Блок из 2 битов может принимать одно из 4 состояний:
В 3-хбитном блоке можно закодировать уже одно из 8 состояний:
Ну а 8-битный блок может принимать аж 256 разных состояний. Это уже достаточно существенная частичка двоичного кода, позволяющая отобразить один из значительного количества вариантов.
Например, каждому состоянию 8-битного блока можно сопоставить какую-то букву. Вариантов, а их 256, будет достаточно для кодирования всех русских букв, включая строчные и прописные их варианты, а также всех знаков препинания. Заменяя каждую букву соответствующим 8-мибитным блоком, из двоичного кода можно составить текст.
Этот принцип и используется для записи в компьютере текстовой информации (подробнее речь об этом пойдет ниже).
Как видите, 8-битная ячейка имеет вполне реальную практическую ценность. Поэтому ее и решили считать минимальной единицей компьютерной информации. Эта единица получила название байт.
Текстовые файлы состоят из сотен, тысяч или даже десятков тысяч букв. Соответственно, для их хранения в двоичном коде требуются сотни, тысячи или десятки тысяч байтов.
Поэтому на практике гораздо чаще приходится имеет дело не с байтами, а с более крупными единицами:
• килобайтами (1 килобайт = 1024 байт);
• мегабайтами (1 мегабайт = 1024 килобайт);
• гигабайтами (1 гигабайт = 1024 мегабайт);
• терабайтами (1 терабайт = 1024 гигабайт).
Кодирование числовой информации
Для работы с числовой информацией мы пользуемся системой счисления, содержащей десять цифр: 0 1 2 3 4 5 6 7 8 9. Эта система называется десятичной.
Кроме цифр, в десятичной системе большое значение имеют разряды. Подсчитывая количество чего-нибудь и дойдя до самой большой из доступных нам цифр (до 9), мы вводим второй разряд и дальше каждое последующее число формируем из двух цифр. Дойдя до 99, мы вынуждены вводить третий разряд. В пределах трех разрядов мы можем досчитать уже до 999 и т.д.
Таким образом, используя всего десять цифр и вводя дополнительные разряды, мы можем записывать и проводить математические операции с любыми, даже самыми большими числами.
Система счисления, использующая только две цифры, называется двоичной.
При подсчете в двоичной системе добавлять каждый следующий разряд приходится гораздо чаще, чем в десятичной.
Вот таблица первых десяти чисел в каждой из этих систем счисления:
Как видите, в десятичной системе счисления для отображения любой из первых десяти цифр достаточно 1 разряда. В двоичной системе для тех же целей потребуется уже 4 разряда.
Соответственно, для кодирования этой же информации в виде двоичного кода нужен носитель емкостью как минимум 4 бита (0,5 байта).
Компьютер, кодируя числа в двоичный код, основывается на двоичной системе счисления. Но, в зависимости от особенностей чисел, может использовать разные алгоритмы:
• небольшие целые числа без знака
Для сохранения каждого такого числа на запоминающем устройстве, как правило, выделяется 1 байт (8 битов). Запись осуществляется в полной аналогии с двоичной системой счисления.
Целые десятичные числа без знака, сохраненные на носителе в двоичном коде, будут выглядеть примерно так:
• большие целые числа и числа со знаком
Для записи каждого такого числа на запоминающем устройстве, как правило, отводится 2-байтний блок (16 битов).
Старший бит блока (тот, что крайний слева) отводится под запись знака числа и в кодировании самого числа не участвует. Если число со знаком «плюс», этот бит остается пустым, если со знаком «минус» – в него записывается логическая единица. Число же кодируется в оставшихся 15 битах.
Например, алгоритм кодирования числа +2676 будет следующим:
1. Перевести число 2676 из десятичной системы счисления в двоичную. В итоге получится 101001110100;
2. Записать полученное двоичное число в первые 15 бит 16-битного блока (начиная с правого края). Последний, 16-й бит, должен остаться пустым, поскольку кодируемое число имеет знак +.
В итоге +2676 в двоичном коде на запоминающем устройстве будет выглядеть так:
Примечательно, что в двоичном коде присвоение числу отрицательного значения предусматривает не только изменение старшего бита. Осуществляется также инвертирование всех остальных его битов.
1. Перевести число 2676 из десятичной системы счисления в двоичную. Получим все тоже двоичное число 101001110100;
2. Записать полученное двоичное число в первые 15 бит 16-битного блока. Затем инвертировать, то есть, изменить на противоположное, значение каждого из 15 битов;
3. Записать в 16-й бит логическую единицу, поскольку кодируемое число имеет отрицательное значение.
Запись отрицательных чисел в инвертированной форме позволяет заменить все операции вычитания, в которых они участвуют, операциями сложения. Это необходимо для нормальной работы компьютерного процессора.
Максимальным десятичным числом, которое можно закодировать в 15 битах запоминающего устройства, является 32767. Иногда для записи чисел по этому алгоритму выделяются 4-байтные блоки. В таком случае для кодирования каждого числа будет использоваться 31 бит плюс 1 бит для кодирования знака числа. Тогда максимальным десятичным числом, сохраняемым в каждую ячейку, будет 2147483647 (со знаком плюс или минус).
• дробные числа со знаком
Дробные числа на запоминающем устройстве в двоичном коде кодируются в виде так называемых чисел с плавающей запятой (точкой). Алгоритм их кодирования сложнее, чем рассмотренные выше. Тем не менее, попытаемся разобраться.
Для записи каждого числа с плавающей запятой компьютер чаще всего выделяет 4-байтную ячейку (32 бита):
• в старшем бите этой ячейки (тот, что крайний слева) записывается знак числа. Если число отрицательное, в этот бит записывается логическая единица, если оно со знаком «плюс» – бит остается пустым.
• во втором слева бите аналогичным образом записывается знак порядка (что такое порядок поймете позже);
• в следующих за ним 7 битах записывается значение порядка.
• в оставшихся 23 битах записывается так называемая мантисса числа.
Чтобы стало понятно, что такое порядок, мантисса и зачем они нужны, переведем в двоичный код десятичное число 6,25.
Порядок кодирования будет примерно следующим:
1. Перевести десятичное число в двоичное (десятичное 6,25 равно двоичному 110,01);
3. Определить значение и знак порядка.
Значение порядка – это количество символов, на которое была сдвинута запятая для получения мантиссы. В нашем случае оно равно 3 (или 11 в двоичной форме);
Знак порядка – это направление, в котором пришлось двигать запятую: влево – «плюс», вправо – «минус». В нашем примере запятая двигалась влево, поэтому знак порядка – «плюс»;
Обратите внимание, что мантисса в двоичном коде записывается, начиная с первого после запятой знака, а сама запятая упускается.
Числа с плавающей запятой, кодируемые в 32 битах, называю числами одинарной точности.
Когда для записи числа 32-битной ячейки недостаточно, компьютер может использовать ячейку из 64 битов. Число с плавающей запятой, закодированное в такой ячейке, называется числом двойной точности.
Двоичное кодирование текстовой информации
Существует несколько общепринятых стандартов кодирования текста в двоичном коде.
Одним из наиболее «старых» (разработан еще в 1960-х гг.) является стандарт ASCII (от англ. American Standard Code for Information Interchange). Это 7-битный стандарт кодирования. То есть, используя его, компьютер записывает каждую букву или знак в одну 7-битную ячейку запоминающего устройства.
Как известно, ячейка из 7 битов может принимать 128 различных состояний. Соответственно, в стандарте ASCII каждому из этих 128 состояний соответствует какая-то буква, знак препинания или специальный символ.
Дальнейшее развитие компьютерной техники показало, что 7-битный стандарт кодирования является слишком «тесным». В 128 состояниях, принимаемых 7-битной ячейкой, невозможно закодировать буквы всех существующих в мире письменностей.
Восьмибитными кодировками, распространенными в нашей стране, являются KOI8, UTF8, Windows-1251 и некоторые другие.
Разработаны также и универсальные стандарты кодирования текста (Unicode), включающие буквы большинства существующих языков. В них для записи одного символа может использоваться до 16 битов и даже больше.
Существование большого количества кодировок текста является причиной многих проблем. Вы, наверное, уже встречались с ситуацией, когда в некоторых программах на экране вместо букв отображаются непонятные «кракозябры». Это потому, что компьютер иногда «ошибается» и неверно определяет кодировку, в которой этот текст хранится в его памяти.
В перспективе, вероятно, будет принят единый стандарт кодирования текста, полностью учитывающий разнообразие существующих письменностей, на который постепенно перейдут все компьютеры, независимо от локации и используемого программного обеспечения. Но произойдет это, судя по всему, не скоро.
Кодирование изображений в двоичный код
Чтобы сохранить в двоичном коде фотографию, ее сначала виртуально разделяю на множество мелких цветных точек, называемых пикселями (что-то на подобии мозаики).
После разбивки на точки цвет каждого пикселя кодируется в бинарный код и записывается на запоминающем устройстве.
Если говорят, что размер изображения составляет, например, 512 х 512 точек, это значит, что оно представляет собой матрицу, сформированную из 262144 пикселей (количество пикселей по вертикали, умноженное на количество пикселей по горизонтали).
Прибором, «разбивающим» изображения на пиксели, является любая современная фотокамера (в том числе веб-камера, камера телефона) или сканер.
Чем на большее количество пикселей разделено изображение, тем реалистичнее выглядит фотография в декодированном виде (на мониторе или после распечатывания).
Однако качество кодирования фотографий в бинарный код зависит не только от количества пикселей, но также и от их цветового разнообразия.
Алгоритмов записи цвета в двоичном коде существует несколько. Самым распространенным из них является RGB. Эта аббревиатура – первые буквы названий трех основных цветов: красного – англ.Red, зеленого – англ. Green, синего – англ. Blue.
Из школьных уроков рисования, Вам, наверное, известно, что смешивая эти три цвета в разных пропорциях, можно получить любой другой цвет или оттенок.
На этом и построен алгоритм RGB. Каждый пиксель записывается в двоичном коде путем указания количества красного, зеленого и синего цвета, участвующего в его формировании.
Чем больше битов выделяется для кодирования пикселя, тем больше вариантов смешивания этих трех каналов можно использовать и тем значительнее будет цветовая насыщенность изображения.
Цветовое разнообразие пикселей, из которых состоит изображение, называется глубиной цвета.
Если для кодирования каждого пикселя какого-то изображения выделяется 8 битов двоичного кода, цветовое разнообразие составит 256 цветов.
Тем не менее, часто встречается и так называемая 32-битная глубина цвета. Она не предусматривает увеличение количества оттенков. Дополнительные биты, выделяемые для кодирования каждого пикселя, предназначены для регулирования степени его прозрачности или же не используются.
Описанная выше техника формирования изображений из мелких точек является наиболее распространенной и называется растровой. Но кроме растровой графики, в компьютерах используется еще и так называемая векторная графика.
Векторные изображения создаются только при помощи компьютера (фотокамеры этого делать «не умеют») и формируются не из пикселей, а из графических примитивов (линий, многоугольников, окружностей и др.).
Зачем нужна векторная графика? В известной детской песенке поется, что для изображения «человечка» достаточно нарисовать всего две «палки» и «огуречек». А представьте, насколько трудно вручную составить человечка из большого числа точек.
Векторное изображение в двоичном коде записывается как совокупность примитивов с указанием их размеров, цвета заливки, места расположения на холсте и некоторых других свойств.
Например, чтобы записать на запоминающем устройстве векторное изображение круга, компьютеру достаточно в двоичный код закодировать тип объекта (окружность), координаты его центра на холсте, длину радиуса, толщину и цвет линии, цвет заливки.
В растровой системе пришлось бы кодировать цвет каждого пикселя. И если размер изображения большой, для его хранения понадобилось бы значительно больше места на запоминающем устройстве.
Тем не менее, векторный способ кодирования не позволяет записывать в двоичном коде реалистичные фото. Поэтому все фотокамеры работают только по принципу растровой графики. Рядовому пользователю иметь дело с векторной графикой в повседневной жизни приходится не часто.
Кодирование звуковой информации
Любой звук, слышимый человеком, является колебанием воздуха, которое характеризируется двумя основными показателями: частотой и амплитудой.
Если графически изобразить звуковую волну, она будет выглядеть следующим образом:
Схему работы компьютера со звуком в общих чертах можно описать так.
Микрофон превращает колебания воздуха в аналогичные по характеристикам электрические колебания.
Динамики акустической системы или наушников имеют противоположное микрофону действие. Они превращают электрические колебания в колебания воздуха.
Но каким же образом звуковая карта преобразовывает электрические колебания в двоичный код?
Если взглянуть на графическое изображение волны и внимательно проанализировать ее геометрию, можно увидеть, что в каждый конкретный момент времени звук имеет определенную интенсивность (степень отклонения от начального состояния).
Значит если весь отрезок времени, в течение которого длится звук, разделить на очень маленькие временные участки, то звуковую волну можно будет записать как очередность значений интенсивности звука в каждом таком временном участке.
Но частота «дробления» звука должна быть достаточно высокой, иначе значения участков не будут отображать реальную геометрию волны. Вот примеры слишком низкой частоты дробления.
Описанный принцип разделения звуковой волны на мелкие участки и лежит в основе двоичного кодирования звука.
Аудиокарта компьютера разделяет звук на очень мелкие временные участки и кодирует степень интенсивности каждого из них в двоичный код. Такое «дробление» звука на части называется дискретизацией. Чем выше частота дискретизации, тем точнее фиксируется геометрия звуковой волны и тем качественней получается запись.
Так, простая речь (например, диктофонная запись) нормально воспринимается человеком, если частота дискретизации при кодировании была не ниже 8000 Гц (8 КГц). То есть, каждая секунда такой записи в двоичном коде должна состоять как минимум из 8000 частей.
Музыкальные же произведения, хранимые в компьютере, должны иметь еще более высокую частоту дискретизации. При записи стандартных звуковых CD она составляет минимум 44,1 КГц (44100 Гц).
Качество записи сильно зависит также от количества битов, используемых компьютером для кодирования каждого участка звука, полученного в результате дискретизации.
Представим, например, что для кодирования каждого такого участка компьютер использует 8 битов. Как известно, 8-битная ячейка может принимать одно из 256 значений. Но вдруг разнообразие интенсивности участков, полученных при дискретизации какого-то звука, оказалось более широким (например, 512 вариантов). В таком случае, компьютер «округлит» интенсивность участков до ближайших доступных значений чтобы «уложиться» в 256 вариантов и качество записи получится низким.
Количество битов, используемых для кодирования каждого участка звука, полученного при дискретизации, называется глубиной звука.
Глубины звука в 8-битов достаточно для кодирования простой речи. Но музыкальные произведения с такой глубиной будут звучать отвратительно. Поэтому гораздо чаще встречаются звуковые файлы, закодированные с глубиной 16, 24 или даже 32 бита.
Следует учитывать, что далеко не все устройства, предназначенные для воспроизведения «цифрового» звука, могут работать с файлами, закодированными с высокой частотой дискретизации и/или большой глубиной звука. Такие файлы могут проигрываться на одном компьютере, и «не открываться» на другом (если звуковая карта не поддерживает настолько высокий уровень дискретизации или глубины звука).
Особенности бинарного кодирования видео
Видеозапись состоит из двух компонентов: звукового и графического.
Кодирование звуковой дорожки видеофайла в двоичный код осуществляется по тем же алгоритмам, что и кодирование обычных звуковых данных (см. предыдущий пункт).
Принципы кодирования видеоизображения схожи с кодированием растровой графики (рассмотрено выше), хотя и имеют некоторые особенности.
Учитывая эту особенность, алгоритмы кодирования видео, как правило, предусматривают запись лишь первого (базового) кадра. Каждый же последующий кадр формируются путем записи его отличий от предыдущего.