Кодирование информации в ЭВМ • Что такое кодирование? • Двоичный код • Двоичная арифметика.

Download Report

Transcript Кодирование информации в ЭВМ • Что такое кодирование? • Двоичный код • Двоичная арифметика.

Кодирование информации в ЭВМ
• Что такое кодирование?
• Двоичный код
• Двоичная арифметика
Что такое «кодирование»?
Рассмотрим пример попроще.
Пусть корреспонденту надо сообщить
в свою газету результаты выборов - кто
стал новым президентом?
Он может сделать это разными
способами:
• написать буквами фамилию на бумаге
(и отослать её по почте или факсу);
• передать фамилию по радиосвязи (или
написать на бумаге) азбукой Морзе точками и тире;
• передать портрет (фотографию или
рисунок);
• сделать ребус;
• показать жестами языка глухонемых...
Нетрудно заметить, что и во всех
других случаях записи или передачи
информации используется один из этих,
или подобные этим способы.
Примерами других способов могут
служить:
• запись текста с помощью азбуки
Бройля
(языка
слепых
текст
записывается на картоне с помощью
выдавленных точек);
• технические чертежи;
• дорожные знаки;
• нотная грамота для записи музыки;
• флаги, поднимаемые на кораблях;
• пиктограммы (типа
)
Языки
Во всех этих случаях человек
производит кодирование информации:
записывает, отображает информацию с
помощью некоторых знаков, символов, …
Более
правильно
говорить,
что
кодирование
это
отображение
информации с помощью некоторого
«языка».
Любой язык состоит из
> алфавита
> правил составления слов
(синтаксических правил).
Я зы к
А лф ави т
и
фраз
С и нтакси с
«Язык» компьютера
Для хранения в ЭВМ информация
тоже, естественно, кодируется.
Каков же язык компьютера?
Какой алфавит он использует?
По каким правилам строятся «слова»
и «фразы» этого языка?
В принципе, компьютер можно
построить на использовании любого
языка.
При
выборе
языка
создатели
руководствовались
следующими
соображениями:
• «буквы»
алфавита
должны
надежно распознаваться (нельзя
допустить, чтобы одна «буква» была
принята за другую);
• алфавит должен быть как можно
проще, то есть содержать поменьше
«букв»;
• синтаксис языка (то есть правила
построения «слов» и «фраз») должен
быть строгим, однозначным, не
допускающим
неопределенности.
Таким
свойством
обладают
математические теории! В них все
строго определено.
Простейшие языки
Самым простым алфавитом является
тот, в котором всего две буквы, два
символа.
Например, подобным алфавитом
является азбука Морзе. В ней две
«буквы»: точка • и тире —. Каждой букве
обычного
алфавита
соответствует
определенная комбинация точек и тире.
Например:
•••
- это буква S
———
- это буква О
Правила составления фраз - как в
обычном
языке
(с
некоторыми
упрощениями). Даже если Вы никогда не
сталкивались с азбукой Морзе, то
сможете прочесть:
•••——— •••
Плохо в азбуке Морзе то, что в ней не
разработаны
правила
вычислений,
обработки чисел.
Это и понятно. Ведь азбука Морзе
была создана с единственной целью кодирование сообщений для их передачи
по телеграфу.
Кстати, на самом деле, если
вдуматься, в азбуке Морзе не две буквы,
а три! Третья буква (символ) - это
пробел, промежуток между точками и
тире.
Двоичный код. Бит.
ЭВМ - машина, работающая на
электричестве. В её проводах и
элементах электрический ток может
идти, а может и не идти.
Эти два состояния и есть две
«буквы» языка компьютера!
Состояние «ток есть» принято
обозначать цифрой 1.
Состояние «тока нет» принято
обозначать цифрой 0.
Не правда ли, очень похоже на азбуку
Морзе? Можно, например, считать, что
1 - это точка •
0 - это тире —
Тогда по аналогии с азбукой Морзе
можно было бы закодировать буквы и
слова:
111
- буква S
000
- буква О
111000111
- SOS
Одно из двух возможных состояний
(тока нет - ток есть, 0 или 1) называют
битом (bit - кусочек, частица), потому
что это элементарная, наименьшая
порция информации.
Слово «бит» (bit - кусочек, частица)
стали использовать еще и потому, что
слово bit можно считать сокращением
слов Binary Digit - двоичная цифра.
Комбинации из бит
В
нашем
примере
буква
S
закодирована тремя битами. Буква О
тоже закодирована тремя битами.
А любую ли букву можно кодировать
тремя битами?
Посмотрите справа сколько и какие
комбинации трех бит существуют.
Вывод: комбинациями из трех бит
можно закодировать только 8 букв.
А ведь в ЭВМ надо кодировать все
буквы - английские (52 буквы - прописные и
строчные), русские (66 букв), цифры (10
штук),
знаки
препинания,
знаки
арифметических операций и т.п.
То есть всего надо кодировать
примерно 200 символов.
000
001
010
011
100
101
110
111
Двоичное число
Заметим, что комбинация бит - это не
что иное, как двоичное число, то есть
число, в котором используются только
две цифры - 0 и 1.
Комбинация из трех бит - это
трехразрядное число. Трехразрядных
чисел, как мы видели, бывает только 8
штук.
Сколько разрядов должны содержать
двоичные числа, чтобы можно было
кодировать все необходимые буквы и
символы?
Разберемся по-порядку.
Одноразрядных двоичных чисел
только 2:
0
1
Заметим, что 2 = 21
Двухразрядных чисел - 4:
00
01
10
11
Заметим, что 4 = 22
Сколько n-разрядных чисел?
Трехразрядных чисел, как мы видели,
всего 8 штук:
000
001
010
011
100
101
110
111
Заметим, что 8 = 23
Чтобы получить все четырехразрядные
числа надо ко всем трехразрядным
числам слева приписать:
для начала 0,
а затем - единицы.
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Итого 16 = 24 штук
Сколько n-разрядных чисел?
Посмотрим еще раз на то, что
получилось, собрав все вместе:
Разрядность
1
2
3
4
Пример
0
00
000
0000
Количество
2 = 21
4 = 22
8 = 23
16 = 24
Хорошо видно, что если у числа
разрядность равна n, то количество nразрядных чисел равно 2n.
Теперь легко подсчитать количество
двоичных чисел для любой разрядности:
Разрядность
Количество чисел
5
25 = 32
6
26 = 62
7
27 = 128
8
28 = 256
9
29 = 512
10
210= 1024
и так далее.
Напомним, что закодировать надо
порядка 200 букв и символов.
Сообразите,
сколько
разрядов
должно содержать двоичное число для
кодирования двухсот символов?
Байт
Если Вы
считаете, что для
кодирования двухсот символов нужны 8разрядные числа, то Вы правы, так как с
их помощью можно закодировать 256
символов.
Именно по этой причине ячейка
памяти в компьютере сделана так, что
может хранить сразу восемь бит, то есть
целый символ.
Именно по этой причине порцию
информации, содержащую 8 бит,
назвали особым словом - байт.
1 байт = 8 бит
01010011 - S
1 байт
01001111 - O
SOS:
010100110100111101010011
Разрядность ЭВМ
Напомним, что в компьютере все его
составные части соединяются между
собой с помощью шины (магистрали), то
есть «пучка» проводов.
Теперь нам должно стать понятно,
почему шина содержит 8, 16 или 32
провода.
Если в шине 8 проводов, то по ней
можно передать одновременно 8 бит, то
есть 1 байт (1 символ) информации.
Такой
компьютер
называется
восьмиразрядным. Именно такими были
первые персональные компьютеры IBM.
Если в шине 16 проводов, то по ней
можно передать одновременно 2 байта
информации.
Такие
компьютеры
называются шестнадцатиразрядными.
Обработка информации
Компьютер может не только хранить
и передавать информацию, но и
обрабатывать её.
Поскольку информация в компьютере
закодирована
двоичными
числами,
обработка информации сводится к
операциям над этими числами.
Чтобы иметь представление об
обработке двоичных чисел, рассмотрим
пример их сложения.
Для того, чтобы сложить
два
двоичных числа, надо поступать точно
также, как при сложении обычных чисел
(чисел
в
десятеричной
системе
счисления).
Единственное отличие состоит в
переносе
в
старший
разряд.
В
десятеричной
системе
счисления
перенос в старший разряд происходит
тогда, когда сумма двух чисел превышает
10 (то есть превышает основание системы
счисления).
В двоичной арифметике основанием
системы счисления является число 2.
Поэтому перенос в старший разряд
происходит,
если
сумма
двух
складываемых чисел равна или больше 2.
Например:
0+0=0
0+1=1
1 + 1 = 210 = 102
Сложение
Для сложения восьмизначных чисел
надо последовательно складывать числа
всех разрядов - точно так, как при
обычном сложении.
Как только при сложении получается
210 (в десятеричной системе счисления),
надо считать, что это не 2, а 10. То есть
записывать в сумме 0, а 1 переносить в
старший разряд.
Краткие итоги
Итак, язык компьютера - это двоичная
арифметика. Она удовлетворяет всем
требованиям, которые выдвигались к
языку кодирования ранее. Напомним эти
требования:
• «буквы» алфавита должны надежно
распознаваться (нельзя допустить, чтобы
одна «буква» была принята за другую);
• алфавит должен быть как можно проще,
то есть содержать поменьше «букв»;
• синтаксис языка (то есть правила
построения «слов» и «фраз») должен быть
строгим, однозначным, не допускающим
неопределенности.
Таким
свойством
обладают математические теории.
• Букв языка компьютера всего две «ток есть»(1) и «тока нет»(0) - меньше не
бывает. Эти «буквы» называются
битами.
• Они надежно распознаются: уж если
«ток есть», так он есть! Пациент либо
жив, либо мёртв.
• Синтаксис (правила построения «слов» и
«фраз») языка компьютера - двоичная
арифметика и алгебра логики Буля (о
которой здесь не было рассказано из-за
недостатка места).