- •Введение
- •1. Предмет информатики
- •1.1 Роль информации в современном обществе
- •1.2 Информационные барьеры в истории человечества
- •1.3 Предметная область информатики
- •2. Теория информации
- •2.1 Исходные понятия теории информации
- •2.2 Формы представления информации
- •2.3 Преобразование сообщений
- •3. Понятие информации в теории Шеннона
- •3.1 Понятие энтропии
- •3.2 Условная энтропия
- •3.3 Статистическое определение информации
- •3.4 Энтропия и информация
- •3.5 Информация и алфавит
- •4. Кодирование символьной информации
- •4.1 Постановка задачи кодирования. Первая теорема Шеннона
- •4.2 Алфавитное неравномерное двоичное кодирование сигналами равной длительности
- •4.2.1 Неравномерный код с разделителем
- •4.2.2 Префиксное неравномерное кодирование
- •4.3 Равномерное алфавитное двоичное кодирование. Байтовый код
- •4.4 Алфавитное кодирование с неравной длительностью элементарных сигналов. Код Морзе
- •4.5 Блочное двоичное кодирование
- •5. Кодирование и представление чисел в компьютере
- •5.1 Системы счисления
- •5.2 Перевод чисел из одной системы счисления в другую
- •5.3 Перевод чисел между системами счисления с основанием 2k
- •5.4 Формы представления вещественных чисел
- •5.5 Кодирование целых чисел в компьютере
- •5.5.1 Кодирование в компьютере целых чисел без знака
- •5.5.2 Кодирование в компьютере целых чисел со знаком
- •5.6 Кодирование в компьютере вещественных чисел
- •5.7 Двоично-десятичные коды
- •5.7.1 Код (8421) – код прямого замещения
- •6. Обработка чисел в компьютере
- •6.1 Выполнение операций сложения
- •6.2 Сложение нормализованных чисел
- •6.3 Выполнение операции умножения
- •6.3.1 Общий алгоритм умножения
- •6.3.2 Особенности умножения в форме с плавающей запятой
- •6.4 Деление чисел
- •7. Кодирование графической и звуковой информации
- •7.1 Представление изображений
- •7.2 Представление звука
- •Список литературы
- •Родина Наталья Васильевна Информатика
- •Часть 1
- •107846, Москва, ул.Стромынка, 20
5. Кодирование и представление чисел в компьютере
Основным направлением применения компьютеров были и остаются разнообразные вычисления. Обработка числовой информации ведется и при решении задач, на первый взгляд, не связанных с какими-либо расчетами, например, при исполнении компьютерной графики или звука.
В связи с этим встает вопрос о выборе оптимального представления чисел в компьютере. Конечно, можно было бы использовать 8-битное кодирование отдельных цифр, а из них составлять числа. Однако такое кодирование не будет оптимальным - на двузначное число 13 потребуется 16 бит, если же определить это число посредством двоичного выбора («угадай-ка 16»), то получим всего 4-битную цепочку 1101.
Важно, что представление определяет не только способ записи данных (букв/чисел), но и допустимый набор операций над ними: в частности, буквы могут быть только помещены в некоторую последовательность (или исключены из нее без изменения их самих); над числами же возможны операции, изменяющие само число.
Представление чисел в компьютере имеет 2 важных отличия:
числа записываются в двоичной системе счисления;
для записи и обработки чисел отводится конечное число разрядов.
Следствия, к которым приводят эти отличия, и рассматриваются в данной главе.
5.1 Системы счисления
Общие замечания относительно понятия «число».
Любое число имеет значение (содержание) и форму представления. Значение числа задает его отношение к значениям других чисел (>, <, =) и, следовательно, определяет порядок расположения чисел на числовой оси.
Форма представления определяет порядок записи числа с помощью предназначенных для этого знаков.
При этом значение числа является инвариантом, то есть не зависит от способа его представления. Это означает также, что число с одним и тем же значением может быть записано по-разному, то есть отсутствует взаимно однозначное соответствие между представлением числа и его значением.
В связи с этим возникают вопросы, во-первых, о формах представления чисел, и, во-вторых, о возможности и способах перехода от одной формы к другой.
Способ представления числа определяется системой счисления.
Система счисления – это правило записи чисел с помощью заданного набора специальных знаков – цифр.
Людьми использовались различные способы записи чисел. Прежде всего, это унарная система, непозиционные и позиционные системы счисления.
Унарная система – это система счисления, в которой для записи чисел используется только один знак - | (палочка). Следующее число получается из предыдущего добавлением новой | ; их количество (сумма) равно самому числу.
Такая система применяется для начального обучения счету детей (счетные палочки). Эта система важна также в теоретическом отношении, поскольку в ней число представляется наиболее простым способом, и, следовательно, просты операции с ним.
Кроме того, именно унарная система определяет значение целого числа количеством содержащихся в нем единиц, которое не зависит от формы представления.
Из непозиционных систем счисления наиболее распространенной можно считать римскую. В ней некоторые базовые числа обозначаются буквой латинского алфавита:
I – 1 X – 10 C – 100,
V – 5 L – 50 D – 500 M – 1000.
Все другие числа строятся из комбинаций базовых в соответствии со следующими правилами:
– если цифра меньшего значения стоит справа от большей цифры, то их значения суммируются; если слева – то меньшее значение вычитается из большего;
– цифры I, X, C, M могут следовать подряд не более 3-х раз каждая;
– цифры V, L, D могут использоваться в записи числа не более одного раза.
Например, XIX – 19 , MDXLIX ( MDIL)– 1549.
Запись в такой системе громоздка и неудобна, но еще более неудобным оказывается выполнение в ней даже самых простых арифметических операций. Отсутствие нуля и знаков для чисел больше M не позволяют римскими цифрами записать любое число (хотя бы натуральное).
В настоящее время для представления чисел применяют, в основном, позиционные системы счисления.
Позиционными называются системы счисления, в которых значение каждой цифры в изображении числа определяется ее положением (позицией) в ряду других цифр.
Наиболее распространенной и привычной является десятичная система счисления, в которой для записи чисел используются 10 цифр: 0, 1, 2, … 9.
Число в позиционной системе счисления представляет собой краткую запись многочлена, в который входят степени некоторого другого числа – основания системы счисления (в десятичной системе это 10).
Например, 272.12 = 2 102 + 7 101 + 2 100 + 1 10-1 + 2 10-2.
В данном числе цифра 2 встречается 3 раза, однако значение этой цифры разное и определяется позицией в числе.
Количество цифр для построения чисел равно основанию системы счисления. Также очевидно, что максимальная цифра на 1 меньше основания.
Причина широкого распространения десятичной системы счисления, очевидно, связана со счетом в унарной системе с пальцами рук в качестве «палочек». Однако в истории человечества имеются свидетельства использования и других систем счисления – пятеричной, шестеричной, двенадцатеричной, двадцатеричной и даже 60-ричной.
Главной особенностью позиционного представления является то, что в нем посредством конечного набора знаков можно записать неограниченное количество различных чисел.
Кроме того, в позиционной системе счисления гораздо легче выполняются операции умножения и деления. Именно эти обстоятельства обуславливают доминирование позиционной системы при обработке чисел, как человеком, так и компьютером.
Пусть р – основание системы счисления. Тогда любое число Z (пока ограничимся только целыми числами) может быть представлено в виде многочлена
. (5.1)
Из коэффициентов ai при степенях основания строится сокращенная запись числа .
Индекс р у числа Z указывает, что оно записано в системе счисления с основанием р; общее количество цифр числа равно k.
Все коэффициенты ai – целые числа, удовлетворяющие условию 0 ai p–1.
Каково минимальное значение р? р=1 невозможно, поскольку тогда все ai = 0 и форма (4.1) теряет смысл.
Первое допустимое значение р = 2 – оно и является минимальным для позиционных систем счисления. Такая система счисления называется двоичной. Ее цифрами являются 0 и 1, а форма (4.1) строится по степеням двойки. Интерес именно к этой системе счисления связан с тем, что любая информация в компьютере представляется с помощью состояний 0 и 1, которые легко реализуются технически.
Наряду с двоичной системой счисления в компьютере используется 8-ричная и 16-ричная системы счисления.
Примечание. В первых компьютерах не использовались возможности двоичного представления. Вопрос, как числа должны быть представлены в вычислительных машинах, активно обсуждался в конце 30-х и в 40-х годах ХХ века. Одним из возможных способов представления была двоично-пятеричная система, в которой каждая цифра в десятичной записи была закодирована семибитной последовательностью, представляющей два числа, сумма которых равнялась числу, представляемому исходной цифрой в десятичной системе. Старшие (левые) 2 бита, определяют, является ли первое слагаемое 0 (комбинация 01), или 5 (комбинация 10). Оставшиеся 5 битов представляют числа 4,3,2,1,0. Они обязательно содержат четыре 0 и одну 1. 1 стоит в том разряде, который представляет собой второе слагаемое. (Например, число 3 имеет представление 0101000, а число 7 - 1000100). Именно эта система использовалась в машине ENIAC.
Еще раз подчеркнем, что значение целого числа (то есть общее количество входящих в него единиц) не зависит от способа его представления и остается одинаковым во всех системах счисления – различают только формы представления одного и того же количественного содержания числа.
Так, например, |||||(1) = 5(10) = 101(2) = 10(5) = 5(6) = 12(3).