Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

инфопособие2013

.pdf
Скачиваний:
14
Добавлен:
04.06.2015
Размер:
6.14 Mб
Скачать

8.2.3.Двоичная и родственные ей системы счисления

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

задолго до создания ЭВМ. Ею особенно увлекались в XVI-XIX вв. Г. В. Лейбниц считал ее простой, удобной и красивой. Выбор двоичной системы счисления обусловлен тем, что работа машины с такой системой более надежна и при случайной помехе труднее изменить 0 на 1 или наоборот.

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

в компьютере

информация.

Двоичная

система

оптимальна

для

максимальной производительности ЭВМ фоннеймановского типа.

 

Как же представляются числа в двоичной системе? Так же как и

в десятичной.

Например, представим число 1996

в десятичной

и

в двоичной системах:

 

 

 

 

 

 

 

1996 (10)

110 3

9 10 2

9 101

9 100

 

а любое целое число в десятичной системе счисления представляется так:

 

(a

n

a

n 1

...a a

0

)

a

n

10n

a

n 1

10n 1 ...

a

101

a

100 .

 

 

 

 

1

 

 

 

 

 

 

1

 

0

 

В двоичной системе счисления это число представляется

аналогично:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(bnbn 1...b1b0 )

bn

2n

 

bn 1

2n 1

...

b1 21 b0 20 ,

а число 1996 будет выглядеть так:

 

 

 

 

 

 

 

1111100110 0(2)

1 210

 

1 29

1 28

1 27

1 26

1 25 1 24

1 23

1 22

 

1 21

1 20

1996 (10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

113

Перевод чисел из десятичной системы в двоичную рассмотрим на следующем примере: переведем в двоичную систему число 289, для этого 289 будем делить на два, записывая остаток от деления, до тех пор, пока в результате на останется 1 (табл. 8.1)

 

 

Таблица 8.1.

 

 

 

 

Число

Делитель

 

Остаток

289

2

 

1

144

2

 

0

72

2

 

0

36

2

 

0

18

2

 

0

9

2

 

1

4

2

 

0

2

2

 

0

1

2

 

1

Если теперь остатки переписать снизу вверх, получим число 289 в двоичной системе:

289 (10)=100100001 (2).

Чтобы произвести обратное действие, нужно записать полученное число в виде суммы 1 и 0, умноженных на соответствующую степень 2:

1 28

0

27

0

26

1 25

1 24

0

23

0

22

0

21

1 20

256

32

1

289.

В ЭВМ используются простые правила сложения и умножения двоичной системы исчисления:

Сложение:

+

0

1

0

0

1

1

1

10

114

ПРИМЕР:

111 122 121 120 7.

101=1*22+0*21+1*20=5

1100

1

23

1

22

0

21

20

12

Умножение:

×

0

1

0

0

0

1

0

1

ПРИМЕР:

100011

1

25

0

24

0

23

0

22

1

21

1

20

35.

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

В восьмеричной системе используется восемь цифр: 0, 1, 2, 3, 4, 5, 6, 7. Цифра 1, записанная в младшем разряде, означает, как и в десятичном

числе, просто

единицу, а в следующем разряде она означает 810,

в следующем –

6410 и т.д.

115

Число 1008 – это 6410, а число 6358 = 6·64+ 3·8 + 5 = 41310 .При вычислениях числа указаны в десятичной системе и признак десятичной

системы 10 опущен.

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

и запомнить еѐ как таблицу умножения. При переводе восьмеричного числа в двоичное заменяют каждую восьмеричную цифру на соответствующую триаду из таблицы. В качестве примера переведѐм число 6118 в двоичную систему:

6118 =110 001 0012,

6118 заменили на 1102, а 18 – на 0012.

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

101 111 1112=5778.

Если первой полноценной триады не получается (не хватает цифр), то еѐ дополняют ведущими пулями:

1111 0002 = 001 111 0002 = 1708.

Запись числа и восьмеричной системе компактнее, чем в двоичной, но ещѐ компактнее она получается в шестнадцатеричной системе. Для первых десяти цифр используют привычные цифры: 0 ,1, 2, 3,4, 5, 6, 7, 8, 9, а для остальных шести цифр – первые буквы латинского алфавита:

A – 10,

B – 11,

C – 12,

D – 13,

E – 14,

F – 15.

116

Как и в восьмеричной системе, цифра 1, записанная в младшем разряде, означает единицу. В следующем разряде та же цифра 1 означает 1610, в следующем 25610 и т. д. Цифра F, записанная в младшем разряде, означает 1510, в следующем разряде 1510* 1610 и т .д. Например:

10016 = 25610

1AF16 = 1*162 + 10*16 + 15 = 43110.

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

Следовательно,

61А16= 110 0001 1010,

здесь 616заменили на 01102,116 – на 00012, А – на 10l02.

При совершении обратной операции двоичное число надо разбить на четвѐрки цифр справа налево (если первой четверке не хватает цифр, то еѐ дополняют ведущими пулями) и потом заменить каждую группу одной шестнадцатеричной цифрой:

11111001112=0011 1110 01112=3Е716.

8.3.Компьютерное кодирование информации

Уэлектронных схем для обработки двоичных кодов есть только два устойчивых состояния – есть сигнал/нет сигнала (высокое напряжение/низкое напряжение).

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

инженеров двоичное кодирование информации привлекает, несмотря на то что числа получаются слишком длинными. Компьютеру легче иметь

117

дело с большим числом простых элементов, чем с небольшим числом сложных.

При хранении информации в памяти компьютера каждый бит хранится в одном разряде памяти. Разряды объединяются в ячейки памяти фиксированного размера –8, 16 и 32 разряда и носят специальные названия «байт», «слово» и «двойное слово». Фактически это является стандартом для современных персональных компьютеров.

При кодировании чисел важно помнить, что, например, число 100010 не удастся поместить в один байт, поскольку его двоичная запись содержит десять цифр (11111010002), что больше размера байта. И конечно, существуют большие числа, не помещающиеся даже в двойное слово.

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

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

Для кодирования текстовой информации в компьютерах была разработана таблица ASCII (American Standard Codefor Information Interchange – американский стандартный код для обмена информацией). Эта таблица изначально содержала 128 наиболее часто применяемых при отображении текстовой информации символов (цифры от 0 до 9, знаки препинания и буквы английского алфавита и пр.). В таблице, каждому символу соответствовал его восьмизначный двоичный код, т. е., каждому символу ставилось в соответствие 8 бит или 1 байт информации.

В дальнейшем, когда персональные компьютеры широко шагнули за пределы США, потребовалось компьютерное кодирование алфавитов национальных языков. Таблицу пришлось расширить до 255 (11111111 в двоичной системе) символов.

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

118

представлена таблица Unicode, увидеть и использовать которую может каждый, выбрав например в меню Microsoft Word раздел ВСТАВКА→СИМВОЛ→ДРУГИЕ СИМВОЛЫ. Обратите внимание на стрелки на рис. 8.5: в таблице знаку «*» соответствует его шестнадцатеричный код 002А.

Рис. 8.5. Таблица Unicode

При отображении веб-страницы случается сбой кодировки и страница становится нечитаемой (рис. 8.6). В этом случае надо в меню браузера выбрать соответствующий раздел КОДИРОВКИ или КОДЫ (место нахождения зависит от вида браузера) и выбрать другую кодировку, ту, которая правильно отобразит вид страницы.

119

а

б

Рис. 8.6. Вид веб-страницы в разных кодировках: а) нормально отображаемая веб-страница; б) сбой кодировки веб-страницы

Для кодировки символов русского алфавита используются несколько таблиц KOI8-R и другие таблицы, поддерживающие кириллицу

120

В 1756 г. выдающийся русский ученый Михаил Васильевич Ломоносов (1711–1765) впервые высказал мысль, что для

воспроизведения

любого

цвета

в природе достаточно

смешать

в определѐнных

пропорциях

три

основных цвета: красный,

зелѐный,

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

Компьютерное кодирование изображений также построено на этой теории. Картинка разбивается вертикальными и горизонтальными линиями на маленькие прямоугольники. Полученная матрица прямоугольников называется растром, а элементы матрицы – пикселями (от англ. picture'selement – «элемент изображения»). Цвет каждого пикселя представлен тройкой значений интенсивности трѐх основных цветов. Чем больше битов выделено для каждого основного цвета, тем большую гамму цветов можно хранить про каждый элемент изображения. В стандарте, называемом truecolor(реальный цвет), на каждую точку растра тратится 3 байта, по 1 байту на каждый основной цвет. Таким образом, 256 уровней яркости красного цвета, 256 уровней яркости зелѐного и 256 уровней яркости синего дают вместе примерно 16,7 млн различных цветовых оттенков (кодировка RGB), что превосходит способность человеческого глаза к цветовосприятию.

Чтобы хранить всю картинку, достаточно записывать в некотором порядке матрицу значений цветов пикселей, например слева направо и сверху вниз. Часть информации о картинке при таком кодировании потеряется. Потери будут тем меньше, чем мельче пиксели. В современных компьютерных мониторах с диагональю 15 – 17 дюймов разумный компромисс между качеством и размером элементов картинки на экране обеспечивает растр от 768×1024 точек; а отечественное телевидение стандарта SECAM – 625 линий на кадр).

Так как визуальное восприятие цвета является трѐхкомпонентиым,

то всякий цвет может быть задан не менее чем

тремя параметрами.

Во многих программах обработки изображения

используется

более

приближѐнная к человеческому восприятию схема

кодирования

HSV

(от англ. hue– цветовой тон, saturation– насыщенность и value– величина, яркость).

Цветовой тон – близость цвета к тем или иным цветам спектра. Наблюдая разложенный в спектр белый свет, глаз человека видит семь

121

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

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

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

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

На рис. 8.7 представлен скриншот приложения работы с графикой Paint.NET на котором видна цветовая палитра ,закодированная с помощью

RGB и HSV схем.

Кодирование звуков состоит в том, что они, вначале преобразуются

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

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

Типичный восьмибитный АЦП преобразует напряжение в диапазоне

от

500

мВ до 500 мВ в восьмиразрядные двоичные числа в диапазоне

от

12810

до 12710.

 

Обратный процесс – воспроизведение закодированного звука

производится с помощью цифро-аналогового преобразователя (ЦАП).

Тогда двоичные числа из диапазона от 1281 0 до 12710 преобразуются в напряжение из диапазона от 500 мВ до 500 мВ.

122