Двоичное кодирование примеры решения

Двоичное кодирование примеры решения

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

Кодирование чисел

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

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

Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:

1) перевести число N в двоичную систему счисления; 2) полученный результат дополнить слева незначащими нулями до k разрядов.

Пример

Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

Переведем число в двоичную систему: 160710 = 110010001112. Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111.

Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

1) получить внутреннее представление положительного числа N; 2) обратный код этого числа заменой 0 на 1 и 1 на 0; 3) полученному числу прибавить 1.

Пример

Получим внутреннее представление целого отрицательного числа -1607. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 0110 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 — это и есть внутреннее двоичное представление числа -1607.

Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления n в некоторой целой степени p, которую называют порядком: R = m * n p .

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12.345 = 0.0012345 x 10 4 = 1234.5 x 10 -2 = 0.12345 x 10 2

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1p 8 = 256. Но 8 бит составляют один байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ЭВМ.

Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

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

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

Стандартными в этой таблице являются только первые 128 символов, т. е. символы с номерами от нуля (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11111111), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов. О кодировании символов русского алфавита рассказывается в главе "Обработка документов".

Кодирование графической информации

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

Растровые изображения представляют собой однослойную сетку точек, называемых пикселами (pixel, от англ. picture element). Код пиксела содержит информации о его цвете.

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

Пиксел на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксел недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксел, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 — черный, 10 — зеленый, 01 — красный, 11 — коричневый.

На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов — красного (Red), зеленого (Green), синего (Blue), из которых можно получить 8 основных комбинаций:

R G B цвет
черный
1 синий
1 зеленый
1 1 голубой
R G B цвет
1 красный
1 1 розовый
1 1 коричневый
1 1 1 белый

Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов — К и количество битов для их кодировки — N связаны между собой простой формулой: 2 N = К.

Читайте также:  Как создавать свою музыку

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

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

Кодирование звука

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

Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его — аналого-цифровым преобразователем (АЦП).

Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь — ЦАП), а затем сгладить получившийся ступенчатый сигнал.

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

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

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

Конечно, такая система кодирования позволяет записать далеко не всякий звук, она годится только для инструментальной музыки. Но есть у нее и неоспоримые преимущества: чрезвычайно компактная запись, естественность для музыканта (практически любой MIDI-редактор позволяет работать с музыкой в виде обычных нот), легкость замены инструментов, изменения темпа и тональности мелодии.

Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат MP3, позволяющий с очень большим качеством и степенью сжатия кодировать музыку. При этом вместо 18—20 музыкальных композиций на стандартный компакт-диск (CDROM) помещается около 200. Одна песня занимает примерно 3,5 Mb, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

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

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

Множество целых чисел, представимых в памяти ПЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В ^-разрядной ячейке может храниться 2 к различных значений целых чисел. Для того чтобы получить внутреннее представление целого положительного числа УУ, хранящегося в ^-разрядном машинном слове, необходимо:

  • 1) перевести число N в двоичную систему счисления;
  • 2) полученный результат дополнить слева незначащими нулями до к разрядов.

Пр и мер 1.77. Получить внутреннее представление целого числа 1607 в двухбайтовой ячейке.

Решение. Переведем число в двоичную систему: (1607) 10 = = (11001000111)2. Внутреннее представление этого числа в ячейке будет следующим:

0000 ОНО 0100 0111.

Для записи внутреннего представления целого отрицательного числа (—./V) необходимо:

  • 1) получить внутреннее представление положительного числа /V;
  • 2) обратный код этого числа получается заменой 0 на 1 и 1 на 0;
  • 3) к полученному числу прибавить 1.

Пр и мер 1.78. Получить внутреннее представление целого отрицательного числа -1607.

Решение. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 ОНО 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 — получим внутреннее двоичное представление числа -1607.

Читайте также:  Рецепты кренделей в мультипекарь редмонд

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

Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

12.345 = 0.00 1 23 45 1 0 4 = 1234.5 1 0 2 = 0.123 45 • 10 2 .

Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию:

0-1, 8 = 256. Но 8 бит составляют 1 байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ПЭВМ.

Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

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

Принцип последовательного кодирования алфавита заключается в том, что в кодовой таблице А8СП латинские буквы (прописные и строчные) располагаются в алфавитном порядке. Расположение цифр также упорядочено по возрастанию значений.

Стандартные в этой таблице — только первые 128 символов, т. е. символы с номерами от 0 (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11 1 1111 1), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов.

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

Растровые изображения представляют собой однослойную сетку точек, называемых пикселями (англ, picture element, pixel). Код пикселя содержит информации о его цвете. Для черно-белого изображения (без полутонов) пиксель может принимать только два значения: белый и черный, а для его кодирования достаточно одного бита памяти: 1 — белый, 0 — черный.

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

На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов — красного (Red), зеленого (Green), синего (Blue), из которых можно получить восемь основных комбинаций (табл. 1.32).

Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов — К и количество битов для их кодировки — N связаны между собой простой формулой: 2 N = К.

В противоположность растровой графике векторное изображение многослойно. Каждый элемент векторного изображения — линия, прямоугольник, окружность или фрагмент текста — рас-

Таблица 1.32. Таблица комбинаций цветов

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

Объекты векторного изображения в отличие от растровой графики могут изменять свои размеры без потери качества (при увеличении растрового изображения увеличивается зернистость).

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

Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его, — аналого-цифровым преобразователем (АЦП).

Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь — ЦАП), а затем сгладить получившийся ступенчатый сигнал.

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

Читайте также:  Знак функции f в ворде

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

Человек издавна использует довольно компактный способ представления музыки — нотную запись. В ней специальными символами указывается, какой высоты звук, на каком инструменте и как сыграть. Фактически ее можно считать алгоритмом для музыканта, записанным на особом формальном языке. В 1983 г. ведущие производители компьютеров и музыкальных синтезаторов разработали стандарт, определивший такую систему кодов, — он получил название МШ1. Конечно, такая система кодирования позволяет записать далеко не всякий звук, она годится только для инструментальной музыки. Но есть у нее и неоспоримые преимущества: чрезвычайно компактная запись, естественность для музыканта (практически любой МЮ1-редактор позволяет работать с музыкой в виде обычных нот), легкость замены инструментов, изменения темпа и тональности мелодии.

Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат МРЗ, позволяющий с очень высокими качеством и степенью сжатия кодировать музыку. При этом вместо 18—20 музыкальных композиций на стандартный компакт-диск (СО-ЯОМ) помещается около 200. Одна песня занимает примерно 3,5 Мбайт, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

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

Кодирование чисел

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

Кодирование целых чисел

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

Целые числа могут занимать 1, 2, 4 или 8 байт (для 64-разрядных ма­шин).

Чтобы получить внутреннее представление целого положительного чис­ла N, хранящегося вk-разрядном машинном слове, необходимо:

1. перевести число Nв двоичную систему счисления;

2. полученный результат дополнить слева незначащими нулями до kразрядов.

Код целого числа может рассматриваться как двоичное число со знаком или без знака.

При беззнаковом представлениивсе разряды используются для за­писи значения числа.

Число 107 = 11010112будет записано:

в 1 байт как 01101011

в 2 байта как 00000000 01101011

1-й байт 0-й байт

в 4 байта как 00000000 00000000 00000000 01101011

3-й байт 2-й байт 1-й байт 0-й байт

Минимальное беззнаковое число равно 0. Максимальное беззнаковое число равно 2 n – 1,гдеn– кол-во двоичных разрядов, используемых для за­писи числа.

Например для 2-хбайтового представления max=11111111 111111112= 1 00000000 00000000 – 1 = 2 16 – 1 = 65 535

Для записи чисел со знаком старший (левый) разряд отводится под знак числа. Если число неотрицательное, то в знаковый разряд записывается 0, в противном случае – 1, т.е. единица в знаковом разряде означает знак “ми­нус”.

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

В прямом коде число хранится в виде: знак+абсолютное значение (мо­дуль) числа.

В обратном коде в значении числа нули заменяют на единицы, а едини­цы на нули.

Дополнительный код получают путем прибавления 1 к обратному.

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

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

Пример. Рассмотрим внутреннее представление целого отрицательного числа: -6 = 1102.

Прямой код: 1000 0110

Обратный код: 1111 1001

Дополнительный: 1111 1001

Прямой код: 10000000 00000000 00000000 00000110

Обратный код: 1111111 1111111 11111111 11111001

Дополнительный: 1111111 1111111 11111111 11111001

1111111 1111111 11111111 11111010

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

1) вычесть 1 из дополнительного кода (получаем обратный код) и заме­нить все нули на единицы, а единицы на нули;

2) сначала заменить все нули на единицы, единицы на нули, затем при­ба­вить единицу к результату.

Пример: возьмем однобайтовый доп. код : 1111 1010 и используем второй алгоритм: 1111 1010 — > — (0000 0101 + 1) = — 1102 = -6.

Ссылка на основную публикацию
Группы в телеграмме пошлые
Список всех чатов, каналов и ботов: tlg.name/CatalogTelegram По поводу размещения: @OXPAHA About Platform СРАЧ ЧАТРугайтесь наздоровье! ❗️Правила чата:НИКАКОЙ РЕКЛАМЫ! Для...
Вотч часы для андроид
Смарт-часы появились на рынке уже несколько лет назад, и теперь вряд ли кого способны удивить. Это действительно очень удобная вещь:...
Впрочем как и всегда запятые
Слово «впрочем» в предложении может быть союзом и вводным словом. От контекста зависит, где ставить запятую. Слово «впрочем» в начале...
Групповая беседа в скайпе
В последних версиях Skype появилась новая функция, которая позволяет общаться по инновационному протоколу Signal. Система подразумевает под собой специальное шифрование...
Adblock detector