Кодирование информации в вычислительных машинах

Московский  Государственный Университет Путей  Сообщения (МИИТ)

Институт  Экономики и Финансов

Кафедра «Финансы и Кредит»

 

 

 

 

 

 

 

 

Реферат по информатике  на тему:

Кодирование информации в вычислительных машинах

 

 

 

 

 

 

 

 

Выполнила: студентка группы ЭЭФ 111

Худойназарова Карина

 

Проверил: преподаватель информатики

Бобырь А. Б.

 

 

 

 

Москва 2011

Содержание

Кодирование информации……………………………………………………………………………………..….. стр. 3

Способы кодирования информации………………………………………………………………….………. стр. 4

Кодирование числовой информации…………………………………………………………….………..… стр. 4

Кодирование символьной (текстовой) информации……..……………………………………….… стр. 8

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

Кодирование звуковой информации…………………………………………………………………………. стр. 13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодирование информации

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

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

Знак – это элемент конечного множества отличных друг от друга элементов.

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

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

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

Единицы измерения  информации:

1 байт = 8 бит

1 Кбайт = 1024 байт

1 Мбайт = 1024 Кбайт

1 Гбайт = 1024 Мбайт

1 Тбайт = 1024 Гбайт

 

 

 

 

 

Способы кодирования информации

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

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

 

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

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

Система счисления – это  система записи чисел с помощью  определенного набора цифр. В привычной  для нас записи чисел – десятичной системе счисления – для записи чисел используется десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. В этой системе любое  целое неотрицательное число  представляется с помощью степеней числа 10 (100=1; 101=10; 102=100; 103=1000; 104=10000; …). Число 10 является основанием этой системы счисления. Действительно, если число меньше 10, то записывается соответствующая ему одна цифра. Если число больше 10, но меньше 100, то оно представляется двумя цифрами: первая указывает количество полных десятков, содержащихся в числе, вторая – количество единиц в последнем неполном десятке.

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

При таком подходе для  представления числа, большего либо равного 1000, но меньшего 10000, требуется  уже четыре цифры. Первая – количество полных тысяч, второе – количество полных сотен, третье – количество полных десятков и четвертая –  количество единиц.

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

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

ак+10кк-1-10к-1+…+а1-1010-100              (1),

где каждый из коэффициентов ак, ак-1, … , а1, а0 является одной из цифр от 0 до 9, называемых десятичными цифрами, причем ак не равно нулю.

Общее количество цифр в десятичной записи числа равно  количеству коэффициентов в представлении (1), т.е. к+1, где к – показатель наибольшей степени числа 10, содержащейся в исходном числе.

Например:

                                              а4             а3           а2                а1                 а0

30072=30000+70+2=3*104+0*103+0*102+7*101+2*100=3007210

                                                                                                          а5              а4            а3           а2        а1              а0

832604=800000+30000+2000+600+4=8*105+3*104+2*103+6*102+0*101+4*100=83260410

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

Двоичная система счисления  – это система, в которой для  записи чисел используются две цифры: 0 и 1. Основанием двоичной системы счисления  является 2. Для получения записи числа в двоичной системе используется представление этого числа с  помощью степеней числа 2.

Рассмотрим на примерах, как представляются числа с помощью степеней числа 2. Предварительно приведем таблицу значений степеней числа 2.

к

0

1

2

3

4

5

6

7

8

9

10

2к

1

2

4

8

16

32

64

128

256

512

1024


 

Используя эту таблицу  можно записать:

  1. =0*20
  2. =20=1*20
  3. =21=1*21+0*20
  4. =2+1=21+20=1*21+1*20
  5. =22=1*22+0*21+0*20
  6. =4+1=22+20=1*22+0*21+1*20
  7. =4+2=22+21=1*22+1*21+0*20
  8. =4+2+1=22+21+20=1*22+1*21+1*20

       25   =16+8+1=24+23+20=1*24+1*23+0*22+0*21+1*20

В общем виде представление  целого неотрицательного числа с  помощью степеней двойки записывается так же, как и представление (1) с заменой числа 10 на число 2:

ак*2кк-1*2к-1+…+а1*210*20        (2),

где каждый из коэффициентов  а, ак-й, …, а1, а0 является одной из двух двоичных цифр 0 или 1, причем старший коэффициент ак=1 (т.е. двоичный код всегда начинается с 1). Запись числа в двоичной системе строится так же, как и в десятичной: первой записывается цифра ак, второй – цифра ак-1 и т.д., последней цифра а0.

Двоичный код числа  – запись этого числа в двоичной системе счисления. Таким образом, двоичным кодом числа является последовательность коэффициентов ак, ак-1, …, а1, а0 из представления (2).Каждый разряд из последовательности может содержать только одну из двоичных цифр: 0 или 1, т.е. один бит информации (в дальнейшем под битом и разрядом будем понимать одно и то же). Это обеспечивает однозначность такого представления. Если какой-либо из коэффициентов больше 1, то происходит переход к следующей степени числа 2.

Например:

2*2к=1*2к=1; 3*2к=(2+1)*2к=1*2к+1+1*2к

Рассмотрим, как получается двоичное представление, например, числа 25. Число 25 представляется в виде суммы  чисел из этой строки: 25=16+8+1. Каждое число берется только один раз  – это обеспечивает однозначность  двоичного кода. Затем выбранные  числа заменяются равными им степенями  двойки их верхней строчки таблицы: 16=24, 8=23, 1=20; 25=24+23+20. И, наконец, разряды, номера которых равны числам, выбранным из первой строчки таблицы, заполняются единицами, а остальные – нулями.

       25=16+8+1=24+23+20=

   =1*24 + 1*23 + 0*22 + 0*21 + 1*20



к            4           3          2           1          0

ак      1         1          0          0          1


 

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

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

Запишем формулу представления  дробного числа в позиционной  системе счисления:

Ap = an-1·pn-1+an-2·pn-2 + ... + a1·p1+a0·p0 +a-1·p-1+a-2·p-2 + ... + a-m·p-m,

В случае десятичной системы  счисления получим:

24,7310 = (2·101+4·100+7·10-1+3·10-2)10

Перевод дробного числа из двоичной системы счисления в  десятичную производится по следующей схеме:

101101,1012 = (1·25+0·24+1·23+1·22+0·21+1·20+1·2-1+0·2-2+1·2-3)10=45,62510

Перевод дробного числа из десятичной системы счисления в  двоичную осуществляется по следующему алгоритму:

· Вначале переводится целая часть десятичной дроби в двоичную систему счисления;

· Затем дробная часть десятичной дроби умножается на основание двоичной системы счисления;

· В полученном произведении выделяется целая часть, которая принимается в качестве значения первого после запятой разряда числа в двоичной системе счисления;

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

Пример: Требуется перевести  дробное десятичное число 206,116 в  дробное двоичное число.

Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам; дробную часть умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа:

.116 • 2 = 0.232

.232 • 2 = 0.464

.464 • 2 = 0.928

.928 • 2 = 1.856

.856 • 2 = 1.612

.612 • 2 = 1.224

.224 • 2 = 0.448

.448 • 2 = 0.896

.896 • 2 =1.792

.792 • 2 = 1.584

и т.д.

Получим: 206,11610=11001110,00011100112

Таблицу степеней первых восьми отрицательных степеней двойки

Степень основания 

2

8

16

0

1

1

1

1

2

8

16

2

4

64

256

3

8

512

4096

4

16

4096

65536

5

32

32768

1048576

6

64

262144

16777216

7

128

2097152

268435456

8

256

16777216

4294967296

9

512

134217728

68719476736

10

1024

1073741824

1099511627776

11

2048

8589934552

17592186044416

12

4096

68719476736

281474976710656

13

8192

549755813888

4503599627370496

14

16384

4398046511104

72057594037927936

15

32768

35184372088832

1152921504606846976

16

65536

281474976710756

18446744073709551616


 

 

Отрицательные числа 

Перейдем теперь к вопросу  представления отрицательных чисел. Из записи в двоичной системе счисления  равенства (- 1) + 1 = 0 легко найти, какой вид должно иметь неизвестное нам пока двоичное представление xxxxxxxx числа - 1:

    xxxxxxxx + 00000001 = 00000000     

Ясно, что на месте символов xxxxxxxx должно быть расположено число 11111111. Правильным результатом при этом, конечно, следовало бы считать 100000000, а не 00000000, но ведь мы имеем дело с типом byte и, так как результат обязан разместиться в байте, единица <<исчезает>>.

Итак, число - 1 должно кодироваться как 11111111. Дальнейшее уже совсем просто: для получения - 2 нужно - 1 уменьшить  на единицу, что даст 11111110; число - 3 представляется как 11111101 и т.д.

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

Легко видеть, что при этом самым маленьким отрицательным  числом, которое принадлежит типу byte, является число - 128 (двоичное представление 10000000), а самым большим - число 127 (представление 01111111). Все представимыe числа (а их 256) в данном случае могут быть получены как пересечение двух множеств: множества Z всех целых чисел и отрезка [ - 128; 127 ].

Интересным является следующее  наблюдение: если число 01111111 увеличить  на единицу, то получится 10000000, что означает следующее:

127 + 1 = - 128 !!!

Итак, множество элементов  типа byte можно представлять в виде свернутого в кольцо отрезка  
[ - 128; 127 ].

 

Шестнадцатеричная система счисления 

Шестнадцатеричная система  счисления – это система счисления, в которой основанием является число 16. Любое целое положительное  число представляется в этой системе  с помощью степеней числа 16 в виде:

ак*16кк-1*16к-1+…+а1*1610*160     (3),

где записью целого положительного числа является последовательность коэффициентов ак, ак-1, …, а1, а0 из представления (3).

Например:

31210=25610+4810+810=1*162+3*161+8*160=13816

Для того, чтобы представление числа в шестнадцатеричной системе было однозначным, значения коэффициентов при степенях числа 16 должны быть целыми числами от 0 до 15. Если значение коэффициента взять равным 16, то умножение какой-либо степени числа 16 на этот коэффициент дает следующую степень числа 16: 16*16к=16к+1; 26*16к=(16+9)*16к=16к+1+9*16к.

В качестве коэффициентов  для записи чисел в шестнадцатеричной  системе берутся шестнадцать  символов: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.Они называются шестнадцатеричными цифрами. Введение шестнадцатеричных цифр A, B, C, D, E, F является необходимым, т.к. при использовании в качестве коэффициентов в записи шестнадцатеричных чисел 10, 11, …, 15 появляется неоднозначность в их прочтении.

Применение шестнадцатеричной  системы счисления в информатике  удобно в связи с тем, что содержимое одного байта можно записать двумя  шестнадцатеричными цифрами. Действительно, для записи любой шестнадцатеричной  цифры достаточно четырех битов. Максимальная шестнадцатеричная цифра  F=1510 имеет двоичный код 1111. Один байт  - это 8 битов, которые можно разделить на две части: четыре младших бита с номерами от 0 до 3 и четыре старших бита с номерами от 4.

 

 

 

 

 

 

 

Таблица кодирования  чисел 

десятичная

шестнадцатеричная

двоичная

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111


 

 

 

 

 

 

 

 

 

 

Кодирование символьной (текстовой) информации

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

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

Попробуем подсчитать наиболее короткую длину такой комбинации с точки зрения человека, заинтересованного  в использовании лишь одного естественного  алфавита – скажем, английского: 26 букв следует умножить на 2 (прописные  и строчные) – итого 52; 10 цифр; будем  считать, 10 знаков препинания; 10 разделительных знаков (три вида скобок, пробел и  др.); знаки привычных математических действий, несколько специальных  символов (типа #, $, & и др.) – итого ~100. Точный подсчет здесь не нужен, поскольку нам предстоит решить простейшую задачу: имея, скажем, равномерный код из групп по N двоичных знаков, сколько можно образовать разных кодовых комбинаций. Ответ очевиден К=2N. Итак, при N=6К=64 – явно мало, при N=7К=128 – вполне достаточно.

Однако, для кодирования  двух естественных алфавитов (плюс все  отмеченные выше знаки) и этого недостаточно. Минимально достаточное значение N в этом случае 8; имея 256 комбинаций двоичных символов, вполне можно решить указанную задачу. Поскольку 8 двоичных символов получили название 1 байта, то говорят о системе «байтового» кодирования.

Наиболее распространены две такие системы: EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standard Information Interchange). Первая исторически тяготеет к «большим» машинам, вторая чаще используется на мини- и микро-ЭВМ (включая ПК). Познакомимся подробнее именно с ASCII, созданной в 1963г.

В своей первоначальной версии – это система семибитного кодирования. Она ограничивалась одним естественным алфавитом (английским), цифрами и набором различных символов, включая «символы пишущей машинки» (привычные знаки препинания, знаки математических действий и др.) и «управляющие символы». Примеры последних легко найти на клавиатуре компьютера: для микро-ЭВМ, например, DEL – знак удаления символа.

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

В СССР в этой области действовала  система кодирования КОИ-7.

Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) – ее происхождение относится ко времени действий Совета Экономической Взаимопомощи государств Восточной Европы. Сегодня КОИ-8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.

Международный стандарт, в  котором предусмотрена кодировка  символов русского алфавита, носит  название ISO (International Standard Organization – Международный институт стандартизации). На практике данная кодировка используется редко. Кодировка символов русского языка, известная как кодировка Windows-1251, была введена «извне» компанией Microsoft, но учитывая широкое распространение операционных систем и других продуктов этой компании в России она нашла широкое распространение в России. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.

В табл.1 приведена часто  используемая в нашей стране модифицированная альтернативная кодировка. В левую  часть входят исходные коды ASCII; в правую часть (расширение ASCII) вставлены буквы кириллицы взамен букв немецкого, французского алфавитов (не совпадающих по написанию с английскими), греческих букв, некоторых спецсимволов.

Таблица 1.  Таблица  кодов ASCII (расширенная)


 

 

 

 

 

 

 

 

 

 

 

Знакам алфавита ПЭВМ ставятся в соответствие шестнадцатеричные числа по правилу: первая – номер столбца, вторая – номер строки. Например, английская «А» имеет код 41, русская «и» - код 8А.

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

При переходе на 16-битную кодировку Unicode, допускающую 65536 кодовых комбинаций стало возможным кодирование всех символов расширенного алфавита.

 

 

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

Под графической информацией  можно понимать рисунок, чертеж, фотографию, изображения на экране телевизора или  в кинозале и т.д. Для обсуждения общих принципов кодирования  графической информации в качестве конкретного, достаточно общего случая графического объекта выберем изображение на экране телевизора. Это изображение состоит из некоторого количества горизонтальных линий – строк. А каждая строка в свою очередь состоит из элементарных мельчайших единиц изображения – точек, которые принято называть пикселями (picsel – PICture’S Element – элемент картинки). Весь массив элементарных единиц изображения называют растром (лат. Rastrum – грабли). Степень четкости изображения зависит от количества строк на весь экран и количества точек в строке, которые представляют разрешающую способность экрана или просто разрешение. Чем больше строк и точек, тем четче и лучше изображение. Достаточно хорошим считается разрешение 640х480, то есть 640 точек на строку и 480 строчек на экран.

Создавать и хранить графические  объекты в компьютере можно двумя  способами – как растровое или как векторное изображение. Для каждого типа изображений используется свой способ кодирования.


 

 

 

Кодирование растровых изображений

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

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

Для черно-белого изображения информационный объем одной точки равен одному биту (либо черная, либо белая – либо 1, либо 0).


Для четырех  цветного – 2 бита.

Для 8 цветов необходимо – 3 бита.

Для 16 цветов – 4 бита.

Для 256 цветов – 8 бит (1 байт).

 

 

 

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

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

Модель RGB используется в телевизорах, мониторах, проекторах, сканерах, цифровых фотоаппаратах… Основные цвета в этой модели: красный (Red), зеленый (Green), синий (Blue). Цветовая модель CMYK используется в полиграфии при формировании изображений, предназначенных для печати на бумаге.

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

R

G

B

Цвет

1

1

1

белый

1

1

0

желтый

1

0

1

пурпурный

1

0

0

красный

0

1

1

голубой

0

1

0

зеленый

0

0

1

синий

0

0

0

черный


 

На практике же, для сохранения информации о цвете каждой точки  цветного изображения в модели RGB обычно отводится 3 байта (т.е. 24 бита) - по 1 байту (т.е. по 8 бит) под значение цвета каждой составляющей. Таким образом, каждая RGB-составляющая может принимать значение в диапазоне от 0 до 255 (всего 28=256 значений), а каждая точка изображения, при такой системе кодирования может быть окрашена в один из 16 777 216 цветов. Такой набор цветов принято называть True Color (правдивые цвета), потому что человеческий глаз все равно не в состоянии различить большего разнообразия.

Кодирование информации в вычислительных машинах