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

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

.pdf
Скачиваний:
41
Добавлен:
27.02.2016
Размер:
6 Мб
Скачать
☆

Информатика

103

 

 

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

8.2 Системы счисления

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

8.2.1 Древние системы счисления

Данные о древнейших системах счисления обнаружены на месте Древнего Египта (рис.85.1) и Месопотамии.

число 345

Рисунок8.1 Древнеегипетская система счисления

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

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

Для определения значения числа надо было изображение числа разбить на разряды справа налево. Новый разряд начинался с появления прямого клина после лежачего, если рассматривать число справаналево например число 32 записывали так (рис. 8.2):

104

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

 

 

Рисунок 8.2Число 32 в Древневавилонской

Знаки прямой клин и лежачий клин служили цифрами в этой системе. Число 60 снова обозначалось тем же прямым клином, что и 1, этим же знаком обозначались и числа 3600=602, 216000=603 и все другие степени 60. Поэтому вавилонская система счисления получила название шестидесятеричной (рис. 8.3).

Рисунок 8.3Число 60 в Древневавилонской

Шестидесятеричная вавилонскаясистема – первая известная система счисления, частично основанная на позиционном принципе.

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

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

Славянская алфавитная нумерация напоминаетсовременную позиционную. В ней числа были закодированы буквами, а над этими буквами, чтобы избежать путаницы, ставилсяспециальный знак титло (рис. 8.4). Одной буквой кодировались числа от 1 до 9, затем 10, 20, ..., 90, и, наконец, 100, 200, ..., 900. Для больших чисел использовались те же самые буквы с добавленными к ним специ-

альными значками, например 10000 обозначалось как.

Информатика

105

 

 

Рисунок 8.4Древнеславянская система счисления

В римской системе счисления семь чиселобозначаются буквами:

1 – I

5 – V

10 – X

50 – L

100 – C

500 – D

1000 – M?

 

а остальные числа записываются комбинациями этих букв. Если в комбинации буквы идут в порядке от больших к меньшим, то соответствующие числа складываются. Например:

XXVII означает 10 + 10 + 5 + 1 + 1 = 27, MMMD означает 1000 + 1000 + 1000

+ 500 = 3500.

Если же какие-то буквы нарушают порядок, то их значения вычитаются из значения следующей буквы. Например:

106

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

IV означает 5 — 1 = 4,

XIX означает 10 + (10 – 1) = 19,

MCMXCIV означает 1000 + (1000 – 100)+ +(100-10)+ (5 – 1) =1994.

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

Вместе с тем в римской системе счисления есть одна важная идея: вклад буквы в число зависит не только от самой буквы, но и от порядка следования (позиции) букв в записи числа. Так, например, буква I дает вклад +1 в число VI и вклад —1 в число IV. Развитие этой идеи приводит к современным позиционным системам нумерации.

8.2.2 Позиционные системы счисления

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

Знаменитый французский математик и физик Лаплас сказал:«Мысль выражать все числа десятью знаками, придавая им, кроме значения по форме, еще и значение по месту, настолько проста, что именно из-за этой простоты трудно понять, насколько она удивительна».

Десятичная система счисления пришла из Индии, где она появилась не позднее VI в. н.э.

В десятичной системе всего десять цифр: 0, 1, 2, 3, 4, 5, б, 7, 8, 9, но информацию несет не только цифра, но также и место, на котором она стоит. В числе 444, например, три одинаковые цифры обозначают количество и единиц, и десятков, и сотен. А вот в числе 400 первая цифра 4 обозначает число сотен, а две цифры 0 сами по себе вклад в число не дают, а нужны лишь для указания позиции цифры 4.

Итак, в десятичной позиционной системе счисления особую роль играет число десять и его степени: 10, 100, 1000, 10 000, ... Самая правая цифра числа показывает число единиц, следующая цифра – число десятков, следующая – число сотен и т.д. Например, число 1995 составляют: 5 единиц, 9 десятков, 9 сотен и одна тысяча:

1995 = 5 + 9 10 + 9•100 + 1 1000.

Поскольку 1000 = 103,100 = 102,10 = 101, можно написать еще и так

1995 = 5 •100+ 9 • 101 + 9 • 102 + 1 • 103.

Информатика

107

 

 

Отсюда уже ясно, как записать любое четырехзначное число:

N a

n

10n a

n 1

10n 1 ... a 101

a

0

100

,

 

 

1

 

 

 

где ai –десятичные цифры числа, каждая из которых может быть 1, 2, 3, 4, 5, 6, 7, 8, 9 или 0, причем цифра an не должна быть ненулевой (иначе число не будет n- значным).

Число 10, степени которого записаны в формуле выше, называют основанием системы счисления.

Если в качестве основания позиционной выбрать любое натуральное число р, то представить число Nв р-ичной системе счисления можно так:

N a

n

p n

a

n 1

p n 1

... a

 

p1

a

0

p0

,

 

 

 

 

1

 

 

 

 

где каждый из коэффициентов-цифр

ai

может

быть

0,1,2,…, p 1, причем

старшая цифра an ненулевая.

 

 

 

 

 

 

 

 

 

 

 

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

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

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

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

1996(10) =1*103+9*102+9*101+9*100,

108

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

 

 

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

(ana n-1...a1.a0) = an*10 n-1+an-1*10 n.+...+a1*101+a0*100.

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

(bn ,bn-1...b1b0) = bn*2n-1+...+b1*21+b0*20,

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

11111001100 (2)=1*2 10+1*2 9+1*2 8+1*2 7+1*2 6+0*2 5+0*2 4+1*2 3+ 1*2 2 + + 0*2 1+0*2 0=1996(10).

Перевод чисел из десятичной системы в двоичную рассмотрим на следующем примере: переведем в двоичную систему число 289, для этого составим таблицу 7.1, записывая остаток от деления на 2.

 

 

Таблица 7.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*2 8+0*2 7+0*2 6+1*2 5+1*2 4+0*2 3+0*2 2++0*2 1+1*2 0= 256+32+1=289.

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

Информатика

 

 

 

 

 

109

 

 

 

 

 

 

 

 

 

 

 

Сложение :

 

 

 

 

 

 

+

 

0

 

1

 

ПРИМЕР:

 

 

 

0

 

0

 

1

 

111

111=1*22+1*21+1*20=7

 

 

1

 

1

 

10

 

+101

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

 

 

 

 

 

 

 

 

______

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

 

 

 

 

 

 

 

1100

 

Умножение:

 

 

 

 

*

 

0

 

1

 

ПРИМЕР:

 

 

 

0

 

0

 

0

 

111

100011 = 1*25+1*21+1*20 = 35

 

1

 

0

 

1

 

* 101

 

 

 

 

 

 

 

 

 

111

 

 

 

 

 

 

 

 

 

000

 

 

 

 

 

 

 

 

 

111

 

 

 

 

 

 

 

 

 

100011

 

 

Впереводе чисел из двоичной системы счисления в десятичную систему

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

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

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

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

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

110

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

 

 

и запомнить еѐ как таблицу умножения. При переводе восьмеричного числа в двоичное заменяют каждую восьмеричную цифру на соответствующую триаду из таблицы. В качестве примера переведѐм число 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.

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

10016 = 25610

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

Информатика

111

 

 

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

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

61А!6= 110 0001 1010,

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

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

11111001112 = 0011 1110 01112 = ЗЕ716.

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

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

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

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

При кодировании чисел важно помнить, что, например, число 100010 не удастся поместить в один байт, поскольку его двоичная запись содержит десять

112

Глава 8.СИСТЕМЫ СЧИСЛЕНИЯ И КОДИРОВАНИЕ ИНФОРМАЦИИ

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

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

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

Для кодирования текстовой информации в компьютерах была разработана таблица ASCII (AmericanStandardCodeforInformationInterchange –

американский стандартный код для обмена информацией). Эта таблица изначально содержала 128 наиболее часто применяемых при отображении текстовой информации символов (цифры о 0 до 9, знаки препинания и буквы английского алфавита и пр.). В таблице, каждому символу соответствовал его восьмизначный двоичный код. То есть, каждому символу ставилось

всоответствие 8 бит или 1 байт информации.

Вдальнейшем, когда персональные компьютеры широко шагнули за пределы США, потребовалось компьютерное кодирование алфавитов

национальных языков. Таблицу пришлось расширить до 255 (11111111 в двоичной системе) символов.

Такого количества кодов такой длины не хватает для представления всех символов, входящих в национальные алфавиты, поэтому свое дальнейшее развитие кодирование текстовой информации получило в универсальной кодовой системе Unicode, использующую двухбайтовую систему кодирования. Unicode включает в себя огромное количество таблиц, объединенных общей системой кодов. В настоящее время она содержит около 49 000 кодов и имеет возможности для расширения. В Unicode кроме европейских и арабских алфавитов, содержатся также символы китайской письменности – иероглифы и другие знаки. На рисунке 8.5 представлена таблица Unicode, увидеть и использовать которую может каждый выбрав например в меню MicrosoftWord раздел ВСТАВКА→СИМВОЛ→ДРУГИЕ СИМВОЛЫ. Обратите внимание на стрелки на рисунке 8.5: в таблице знаку «*» соответствует его шестнадцатеричный код 002А.