64858

Двоичное кодирование

Лекция

Информатика, кибернетика и программирование

В отличие от привычного для нас десятичного кодирования чисел то есть кода с основанием десять при двоичном кодировании в основании кода лежит число два рис.3 показано соответствие первых двадцати чисел в десятичной и двоичной системах.

Русский

2014-07-15

157 KB

10 чел.

PAGE  7

FILENAME 0-Кодирование и ф-ции-устр

Двоичное кодирование

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

В отличие от привычного для нас десятичного кодирования чисел, то есть кода с основанием десять, при двоичном кодировании в основании кода лежит число два (рис. 2.9). То есть каждая цифра кода (каждый разряд) двоичного кода может принимать не десять значений (как в десятичном коде: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), а всего лишь два — 0 и 1. Система позиционной записи остается такой же, то есть справа пишется самый младший разряд, а слева — самый старший. Но если в десятичной системе вес каждого следующего разряда больше веса предыдущего в десять раз, то в двоичной системе (при двоичном кодировании) — в два раза. Каждый разряд двоичного кода называется бит (от английского "Binary Digit" — "двоичное число").

Рис. 2.9.  Десятичное и двоичное кодирование

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

Из таблицы видно, что требуемое количество разрядов двоичного кода значительно больше, чем требуемое количество разрядов десятичного кода. Максимально возможное число при количестве разрядов, равном трем, составляет при десятичной системе 999, а при двоичной — всего лишь 7 (то есть 111 в двоичном коде). В общем случае n-разрядное двоичное число может принимать 2n различных значений, а n-разрядное десятичное число — 10n значений. То есть запись больших двоичных чисел (с количеством разрядов больше десяти) становится не слишком удобной.

Таблица 2.3. Соответствие чисел в десятичной и двоичной системах

Десятичная система

Двоичная система

Десятичная система

Двоичная система

0

0

10

1010

1

1

11

1011

2

10

12

1100

3

11

13

1101

4

100

14

1110

5

101

15

1111

6

110

16

10000

7

111

17

10001

8

1000

18

10010

9

1001

19

10011

Для того чтобы упростить запись двоичных чисел, была предложена так называемая шестнадцатеричная система (16-ричное кодирование). В этом случае все двоичные разряды разбиваются на группы по четыре разряда (начиная с младшего), а затем уже каждая группа кодируется одним символом. Каждая такая группа называется полубайтом (или нибблом, тетрадой), а две группы (8 разрядов) — байтом. Из табл. 2.3 видно, что 4-разрядное двоичное число может принимать 16 разных значений (от 0 до 15). Поэтому требуемое число символов для шестнадцатиричного кода тоже равно 16, откуда и происходит название кода. В качестве первых 10 символов берутся цифры от 0 до 9, а затем используются 6 начальных заглавных букв латинского алфавита: A, B, C, D, E, F.

Рис. 2.10.  Двоичная и 16-ричная запись числа

В табл. 2.4 приведены примеры 16-ричного кодирования первых 20 чисел (в скобках приведены двоичные числа), а на рис. 2.10 показан пример записи двоичного числа в 16-ричном виде. Для обозначения 16-ричного кодирования иногда применяют букву "h" или "H" (от английского Hexadecimal) в конце числа, например, запись A17F h обозначает 16-ричное число A17F. Здесь А1 представляет собой старший байт числа, а 7F — младший байт числа. Все число (в нашем случае — двухбайтовое) называется словом.

Таблица 2.4. 16-ричная система кодирования

Десятичная система

16-ричная система

Десятичная система

16-ричная система

0

0 (0)

10

A (1010)

1

1(1)

11

B (1011)

2

2 (10)

12

C (1100)

3

3 (11)

13

D (1101)

4

4 (100)

14

E (1110)

5

5 (101)

15

F (1111)

6

6 (110)

16

10 (10000)

7

7 (111)

17

11 (10001)

8

8 (1000)

18

12 (10010)

9

9 (1001)

19

13 (10011)

Для перевода 16-ричного числа в десятичное необходимо умножить значение младшего (нулевого) разряда на единицу, значение следующего (первого) разряда на 16, второго разряда на 256 (162) и т.д., а затем сложить все произведения. Например, возьмем число A17F:

A17F=F*160 + 7*161 + 1*162 + A*163 = 15*1 + 7*16+1*256+10*4096=41343

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

Помимо рассмотренных кодов, существует также и так называемое двоично-десятичное представление чисел. Как и в 16-ричном коде, в двоично-десятичном коде каждому разряду кода соответствует четыре двоичных разряда, однако каждая группа из четырех двоичных разрядов может принимать не шестнадцать, а только десять значений, кодируемых символами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. То есть одному десятичному разряду соответствует четыре двоичных. В результате получается, что написание чисел в двоично-десятичном коде ничем не отличается от написания в обычном десятичном коде (табл. 2.6), но в реальности это всего лишь специальный двоичный код, каждый разряд которого может принимать только два значения: 0 и 1. Двоично-десятичный код иногда очень удобен для организации десятичных цифровых индикаторов и табло.

Таблица 2.6. Двоично-десятичная система кодирования

Десятичная система

Двоично-десятичная система

Десятичная система

Двоично-десятичная система

0

0 (0)

10

10 (1000)

1

1(1)

11

11 (1001)

2

2 (10)

12

12 (10010)

3

3 (11)

13

13 (10011)

4

4 (100)

14

14 (10100)

5

5 (101)

15

15 (10101)

6

6 (110)

16

16 (10110)

7

7 (111)

17

17 (10111)

8

8 (1000)

18

18 (11000)

9

9 (1001)

19

19 (11001)

В двоичном коде над числами можно проделывать любые арифметические операции: сложение, вычитание, умножение, деление.

Рассмотрим, например, сложение двух 4-разрядных двоичных чисел. Пусть надо сложить число 0111 (десятичное 7) и 1011 (десятичное 11). Сложение этих чисел не сложнее, чем в десятичном представлении:

При сложении 0 и 0 получаем 0, при сложении 1 и 0 получаем 1, при сложении 1 и 1 получаем 0 и перенос в следующий разряд 1. Результат — 10010 (десятичное 18). При сложении любых двух n-разрядных двоичных чисел может получиться n-разрядное или (n+1)-разрядное число.

Точно так же производится вычитание. Пусть из числа 10010 (18) надо вычесть число 0111 (7). Записываем числа с выравниванием по младшему разряду и вычитаем точно так же, как в случае десятичной системы:

При вычитании 0 из 0 получаем 0, при вычитании 0 из 1 получаем 1, при вычитании 1 из 1 получаем 0, при вычитании 1 из 0 получаем 1 и заем 1 в следующем разряде. Результат — 1011 (десятичное 11).

При вычитании возможно получение отрицательных чисел, поэтому необходимо использовать двоичное представление отрицательных чисел.

Для одновременного представления как двоичных положительных, так и двоичных отрицательных чисел чаще всего используется так называемый дополнительный код. Отрицательные числа в этом коде выражаются таким числом, которое, будучи сложено с положительным числом такой же величины, даст в результате нуль. Для того чтобы получить отрицательное число, надо поменять все биты такого же положительного числа на противоположные (0 на 1, 1 на 0) и прибавить к результату 1. Например, запишем число –5. Число 5 в двоичном коде выглядит 0101. Заменяем биты на противоположные: 1010 и прибавляем единицу: 1011. Суммируем результат с исходным числом: 1011 + 0101 = 0000 (перенос в пятый разряд игнорируем).

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

Помимо стандартных арифметических операций, в двоичной системе счисления используются и некоторые специфические операции, например, сложение по модулю 2. Эта операция (обозначается A) является побитовой, то есть никаких переносов из разряда в разряд и заемов в старших разрядах здесь не существует. Правила сложения по модулю 2 следующие: , , . Эта же операция называется функцией Исключающее ИЛИ. Например, просуммируем по модулю 2 два двоичных числа 0111 и 1011:

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

Функции цифровых устройств

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

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

Рис. 2.11.  Включение цифрового устройства

Рис. 2.12.  Аналого-цифровое и цифро-аналоговое преобразование

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

Одно цифровое устройство может состоять из нескольких более простых цифровых устройств. Часто эти составные элементы называют блоками, модулями, узлами, частями. Если объединяются несколько сложных цифровых устройств, то говорят уже о цифровых системах, комплексах, установках. Мы в основном будем использовать термин "устройство", как занимающий промежуточное положение.

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

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

35482. Мережеві можливості системи Linux 27.77 KB
  Вы даёте fingerу имя пользователя или адрес email и он попытается связаться с соответствующим сервером чтобы получить от него имя пользователя номер офиса телефон и другую информацию.com finger может возвратить имя пользователя состояние почты телефонные номера и файлы типа dot plan и dot project. по умолчанию предоставляются следующие данные: Имя пользователя Номер офиса Номер домашнего телефона Номер рабочего телефона Состояние логина Состояние email Содержимое файла. Пример: finger имя вашей учетной записи другой...
35483. Запуск команд у визначений час за допомогою команди at 15.89 KB
  Формат команди Опис at hh:mm Виконати завдання під час hh:mm у 24годинному форматі at hh:mm місяць день рік Виконати завдання під час hh:mm у 24годинному форматі у відповідний день at 1 Вивести список завдань у черзі; псевдонім команду atq at now count timeunits Виконати завдання через визначений час що задано параметром count відповідних одиницях тижнях днях чи годинник хвилинах at d jobJD Видалити завдання з ідентифікатором JobJD з черги; псевдонім команди atnn Планування виконання за допомогою сron і crontab синтаксис команд...
35484. Процесcы в Windows 143.5 KB
  Потоки Процессы инертны. Отвечают же за исполнение кода содержащегося в адресном пространстве процесса потоки. Поток thread некая сущность внутри процесса получающая процессорное время для выполнения. В каждом процессе есть минимум один поток.
35485. Процессы. Системные вызовы fork() и exec(). Нити 11.64 KB
  Процесс в Linux как и в UNIX это программа которая выполняется в отдельном виртуальном адресном пространстве. Когда пользователь регистрируется в системе автоматически создается процесс в котором выполняется оболочка shell например bin bash. Linux поддерживает параллельное или квазипараллельного при наличии только одного процессора выполнение процессов пользователя. Каждый процесс выполняется в собственном виртуальном адресном пространстве т.
35486. Режимы ядра и пользователя Windows 73.01 KB
  Windows NT раньше поддерживала несколько архитектур центральных процессоров включая PowerPC и Alpha современные версии Windows NT поддерживают только процессоры компании Intel и совместимые с ними модели например компании AMD. Страницы памяти которые содержат код в отличие от данных могут быть отмечены как предназначенные только для чтения пользовательскими процессами и кодом на уровне ядра Приложения которые выполняются в пользовательском режиме получают доступ к службам ядра Windows NT вызывая специальные инструкции допускающие...
35487. Информационные процессы 256 KB
  Будем различать данные знания и информацию: информацию можно получить после соответствующей обработки знаний или данных.ru : информацию по отраслям статистики; интегрированные базы данных; статистическую информацию первичных отчетов. Государственная система правовой информации включает: комплекс баз данных правовой информации содержащей более 340000 правовых актов; база данных действующего российского законодательства; база данных судебной статистики и т. Централизованное базируется на базах данных МЧС МВД и т.
35488. Информационные системы в экономике. Общая характеристика методов формирования решений 124.5 KB
  Принятие решения это всегда выбор определенного направления деятельности из нескольких возможных. Следует различать два процесса: формирование решения и принятие решения. Формирование решения это подготовка исходных данных и их обработка таким образом что бы было ясно последствия его принятия. Принятие решения это изучение различных вариантов их последствий и утверждение одного из них.
35489. Экономические информационные системы 139.5 KB
  Наиболее распространенными формами такого рода моделей являются: диаграммы потоков данных сети Петри сети управления и планирования модели баз данных модели баз знаний и т. Большинство бизнеспроцессов воспроизводятся с помощью диаграмм потоков данных. В зависимости от целей моделирования внимание может быть сосредоточено либо на процессах бизнеспроцесса либо на объектах либо на потоках данных. Если необходимо воспроизвести объекты и связи между ними то пользуются стандартом IDEF1 а при необходимости моделирования потоков данных ...
35490. Информационные системы. Процесс информатизации 78.5 KB
  Информационный процесс. Характеристика его составляющих Информационный процесс процесс получения создания сбора обработки накопления хранения поиска распространения и использования информации. Базовыми фундаментальными понятиями экономической информатики являются: данные; информация и экономическая информация; информационный процесс; задача и экономическая задача; знания; Данные В повседневной жизни мы сталкиваемся с сообщениями об объектах событиях процессах от различных источников. Информационная система это...