Лекции по информатике учебно методическое пособие
Скачать 0.99 Mb.
|
1.6. Единицы измерения информации Бит – это минимальная единица измерения количества инфор- мации. Более крупные единицы формируются в информатике спосо- бом, который несколько отличается от принятых в большинстве наук. Первой более крупной, чем бит, единицей измерения информации, выбран байт: 1 байт = 8 бит = 2 3 бит. Для измерения более крупных объемов информации исполь- зуются приставки, применяемые в традиционной международной системе единиц СИ. В качестве множителей кратных единиц в ней используют коэффициент 10 n , где n = 3, 6, 9 и т. д. Это соответствует десятичным приставкам "Кило" (10 3 ), "Мега" (10 6 ), "Гига" (10 9 ) и т. д. В компьютере информация кодируется с помощью двоичной знако- вой системы, и поэтому в кратных единицах измерения количества информации используют коэффициент 2 n , а не 10 n . Так как 10 3 2 10 , для крупных единиц информации используются те же приставки, что и в системе СИ: 1 Килобайт (Кбайт) = 2 10 байт = 1024 байт; 1 Мегабайт (Мбайт) = 2 10 Кбайт = 1024 Кбайт=1 048 576 байт; 1 Гигабайт (Гбайт) = 2 10 Мбайт = 1024 Мбайт = 1 073 741 824 байт; 1 Терабайт (Тбайт)= 2 10 Гбайт = 1024 Гбайт 2 40 байт; 14 1 Петабайт (Пбайт) = 2 10 Тбайт = 1024 Тбайт 2 50 байт. 1.7. Системы счисления Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых сис- тем, которые называются системами счисления. Символы алфавита систем счисления называются цифрами. Различают позиционные и непозиционные системы счисления. В непозиционных системах значение цифры не зависит от по- ложения в числе. Примером записи чисел в таких системах может служить римская система. В качестве цифр в ней используются неко- торые буквы латинского алфавита. Количество, сопоставленное им, приведено в табл. 1.2. Таблица 1.2. Цифры римской системы счисления Римская цифра I V X L C D M Значение в метрической системе 1 5 10 50 100 500 1000 Число представляется как сумма или разность последователь- ности нужных цифр. Если слева от следующей стоит цифра, соответ- ствующая меньшему количеству, она вычитается, если справа – при- бавляется к числу. Пример: IIXXX = 10 – 1 – 1 + 10 + 10 = 28 10 В позиционных системах количественное значение цифры за- висит от еѐ положения в числе. Обычно при записи числа в позици- онных системах используют арабские цифры. Количество цифр, ко- торое используется при этом, называется основанием системы. Оно определяет, во сколько раз различаются количества, соответствую- щие одинаковым цифрам, стоящим в соседних позициях числа, и ука- зывается нижним индексом после последней цифры числа. Если ос- нование системы, по которой записано число, не указано, по умолча- нию считается, что оно равно десяти. Количество, соответствующее числу, можно представить в ви- де многочлена по степеням основания. Цифры, из которых составля- ется число, это коэффициенты, на которые надо умножить соответст- вующие степени основания. Первая цифра справа – коэффициент при 15 нулевой степени основания. Далее справа налево перечисляются ко- эффициенты при первой, второй и т. д. степенях. Примеры: 333 10 = 3 * 10 2 + 3 * 10 1 +3 * 10 0 ; 333 12 = 3 * 12 2 + 3 *12 1 + 3 * 12 0 = 3 * 144 + 3 * 12 + 3 = 471 10 1F3D 16 = 1 * 16 3 + 15 * 16 2 + 3 * 16 1 + 13 * 16 0 = 7997 10 37 8 = 3 * 8 1 + 7 * 8 0 = 31 10 0110 2 = 0 * 2 3 +1 * 2 2 + 1 * 2 1 + 0 * 2 0 = 6 10 1Кб = 2 10 байт = 10000000000 2 байт = 1024 10 байт Дробная часть числа раскладывается в многочлен по отрица- тельным степеням основания. Алгоритмы перевода целого и дробного числа из одной пози- ционной системы в другую различны. Приведем в качестве примера алгоритм перевода целого числа А из привычной для нас системы по основанию 10 в число по основанию k. Для этого надо представить его как многочлен по степеням k (значения всех коэффициентов меньше k): A = a n–1 * k n–1 + a n–2 * k n–2 + … a 1 * k 1 + a 0 * k 0 Коэффициенты при степенях k – это цифры числа A k , обозна- чающие то же количество в новой системе: A k = a n–1 a n–2 … a 1 a 0 Для того, чтобы определить их, на первом шаге разделим на- цело число A на k: A 1ц = A / k = a n–1 * k n–2 + a n–2 * k n–3 + … a 1 * k 0 a 0 – остаток от деления – это младшая цифра числа A k . Теперь разделим нацело число A 1ц на k. Аналогично предыдущему получим численные значения остальных коэффициентов. Применим этот алгоритм для представления числа 333 10 в пя- теричной системе. Обозначим операцию деления нацело как div(A; k), где A – делимое, k – делитель: 1) A 1ц = div (333; 5) = 66, остаток a 0 = 3; 2) A 2ц = div (66; 5) = 13, остаток a 1 = 1; 3) A 3ц = div (13; 5) = 2 , остаток a 2 = 3; 4) A 4ц = div (2; 5) = 0 , остаток a 3 = 2; 5) 333 10 = 2313 5 ; 6) Проверка: 3 * 5 0 + 1 * 5 1 + 3 * 5 2 + 2 * 5 3 =333 16 Базовой системой счисления в вычислительной технике явля- ется двоичная система. Так как коды чисел и команд в ней слишком длинные, в документации используют более компактную запись по родственным основаниям: в восьмеричной или шестнадцатеричной системе. В восьмеричной системе для записи числа используются цифры 0, 1, 2,.., 7. В шестнадцатеричной системе арабские цифры 0, 1,2,…, 9 дополняются начальными буквами латинского алфавита. Из табл. 1.3 видно, что если добавить слева незначащие ноли, то значение каждой цифры восьмеричной системы можно предста- вить тремя, а шестнадцатеричной – четырьмя цифрами двоичной сис- темы. При переводе числа из двоичной системы в восьмеричную число справа налево разбивают на группы по три разряда, и каждую тройку двоичных цифр заменяют одной восьмеричной. Если в по- следней группе слева осталась только одна или две цифры, ее допол- няют нолями. Перевод в шестнадцатеричную систему делается аналогично, но двоичное число разбивают на группы по четыре цифры: 10001111111010 2 10 001 111 111 010 2 21772 8 10001111111010 2 10 0011 1111 1010 2 23FA 16 Таблица 1.3. Таблица соответствия между начальными двоичными, восьмеричными, шестнадцатеричными и десятичными числами: Основание системы счисления Вид числа 10 0 1 2 3 4 5 6 7 2 0000 0001 0010 0011 0100 0101 0110 0111 8 00 01 02 03 04 05 06 07 16 0 1 2 3 4 5 6 7 10 8 9 10 11 12 13 14 15 2 1000 1001 1010 1011 1100 1101 1110 1111 8 10 11 12 13 14 15 16 17 16 8 9 A B C D E F 1.8. Характеристики основных типов данных Наряду с информационным смыслом термином бит в вычис- лительной технике используют для обозначения наименьшего эле- 17 мента памяти, необходимого для хранения одного из двух знаков: «0» или «1», используемых для представления данных и команд внутри компьютера. Бит очень удобен для использования двоичной формы пред- ставления информации. Для каждого типа информации (символьный, текстовый, графический, числовой) был найден способ представить ее в едином виде как последовательность, использующую в разных комбинациях только два символа. Каждая такая последовательность называется двоичным кодом. Недостаток двоичного кодирования – длинные коды. Но в технике легче иметь дело с большим числом простых однотипных элементов, чем с небольшим числом сложных. Двоичные символы могут представляться любыми способами: буквами А, Б; словами ДА, НЕТ, двумя разными, но устойчивыми со- стояниями системы и т. д. Для простоты записи были выбраны циф- ры 0 и 1. Характеристики основных типов данных, которые обрабаты- ваются современными компьютерами, приведены в табл.1.4. Таблица 1.4. Основные виды данных, с которыми работает ЭВМ. Тип данных Название типа данных Объем памяти Диапазон значе- ний Целые числа (формат с фик- сированной за- пятой) Byte (короткое целое) 1 байт От – 127 до + 127 Integer 2 байта От – 32768 до + 32767 Long 4 байта От – 2 147 483 648 до + 2 147 483 647 Вещественные числа (формат с плавающей запятой) Single (7 – 8 значащих цифр) 4 байта От – 1,4*10 -45 до + 3,4*10 38 Double (15 – 16 значащих цифр) 8 байт от – 5,0*10 -324 до + 1,7*10 308 Символьные Первоначальные таблицы 8- битовых кодировок (ASCII, КОИ8-Р, CP1251, CP866, ISO 8859-5 и другие) 1 байт 256 символов Юникод 2 байта 65536 символов Логические (Boolean) 1 байт 0; 1 18 1.9. Кодирование числовой информации в компьютере Числа в компьютере переводятся в двоичную позиционную систему и размещаются в отведенном для них месте в формате с фик- сированной или плавающей запятой. В формате с фиксированной запятой каждому разряду па- мяти всегда соответствует один и тот же разряд числа. Например, при кодировании целых чисел, младший разряд числа размещается в по- следнем (крайнем справа) бите памяти, отведенной под код числа. То есть место для дробной части числа не предусматривается. Для кодирования целых чисел используется три варианта ко- дировок: прямой, обратный и дополнительный коды. Для положи- тельных целых чисел используется прямой код. Обратный и допол- нительный коды добавляются при кодировании отрицательных чи- сел. Они позволяют заменить операцию вычитания на сложение, что существенно упрощает работу процессора и увеличивает его быстро- действие. В прямом коде первый бит памяти, отведѐнный под число, по- казывает знак числа: 0 – положительное, 1 – отрицательное. Осталь- ные биты отводятся под двоичный код модуля числа. Примеры: 127 10 → 01111111 2 ; – 127 10 → 11111111 2 ; 1 10 → 00000001 2 ; – 1 10 → 10000001 2 В обратном коде все двоичные цифры, кроме первой (указы- вающей на знак), инвертируют: заменяют 0 → 1, 1→ 0. Примеры: – 127 10 → 11111111 2 → 10000000 2 ; – 1 10 → 11111110 2 → 00000001 2 Дополнительный код получают из обратного кода целого от- рицательного числа, прибавляя к нему 1 2 . Примеры: – 1 10 → 11111110 2 → 10000001 2 →1111 1110 2 ; – 127 10 → 11111111 2 → 10000000 2 → 1000 0001 2 В формате с плавающей запятой представляются вещест- венные числа (предполагается, что они могут содержать дробную часть). В этом формате число заносится в память компьютера в экс- поненциальной форме, то есть в виде двух сомножителей: мантиссы (дроби, в которой первая значащая цифра стоит сразу после запятой) 19 и основания системы счисления в соответствующей степени (поряд- ке). Примеры для десятичной системы счисления приведены в табли- це 1.5. Таблица 1.5 Примеры перевода вещественных чисел в экспоненциальную форму Вещественное число Экспоненциальная форма Мантисса Порядок 98567 0,98567*10 5 0,98567 5 – 98567 – 0,98567*10 5 –0,98567 5 98,567 0,98567*10 2 0,98567 2 – 0,0009856 – 0,9856*10 -3 – 0,9856 –3 В байтах, отведенных для записи числа, выделяются опреде- ленные разряды для хранения всех фрагментов числа: знаков мантис- сы и порядка, их абсолютных значений. Пример (код максимального положительного числа): 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Знак и значение порядка Знак и значение мантиссы 1.10. Кодирование текстовой информации в компьютере Компьютерная обработка текстовой информации начала ис- пользоваться с середины 60-х годов. Помимо преимуществ, которые появляются при автоматическом внесении текстовых комментариев в результаты расчетных программ, создание, обработка и хранение текстовых документов в файловом виде представляет массу удобств. При кодировании текста в память последовательно заносятся коды символов, составляющих текст, и команд, управляющих внеш- ним видом и размещением этих символов. То есть если мы определя- ем числа 69 и 96 как текстовую информацию, коды этих чисел будут отличаться только порядком следования кодов цифр 6 и 9. Если же мы определяем их как числовую информацию, их коды будут совер- шенно различны, так как они представляют разные по величине чис- ла. Первоначально для кодирования одного символа использовал- ся 1байт. В байт можно записать в 2 8 = 256 разных кодов (состояний). Эти состояния перенумерованы, и каждому сопоставляется какой- либо буквенный символ, графический элемент или команда, необхо- димая при оформлении текстовой информации. Такое соответствие называется кодовой таблицей. 20 В настоящее время существуют и применяются разные вари- анты 8-битных кодовых таблиц. Наиболее популярные из них: ASCII –American Standart Code for Information Interchange – американский стандартный код для обмена информацией; КОИ8-Р – Код Обмена Информацией 8-битный с кирилли- цей; CP1251 – (Code Page) – кодировка с кириллицей в Microsoft Windows; CP866 – кодировка MSDOS; ISO 8859-5 – International Standards Organization – Междуна- родная организация по стандартизации. Ещѐ один стандарт для кодов для кириллицы. Множество кодовых таблиц вызвано тем, что с учетом разно- образия естественных языков и фирм, выпускающих программное обеспечение, 256 состояний одного байта недостаточно для того, чтобы закодировать все встречающиеся символы и способы форма- тирования текста. При разработке всех кодовых таблиц использовано следующее соглашение: первая половина таблицы – это коды с 0 по 127 – интер- национальна, т. е одинакова во всех вариантах кодировок. Первые 33 состояния (0–32) – это коды операций с текстом (перевод на новую строку, пробел, удаление последнего символа и т. п.). Затем состоя- ния с 33 по 127 – это коды знаков препинания, арифметических дей- ствий, цифр, строчных и прописных букв латинского алфавита. Вто- рая половина кодовых таблиц отводится под знаки национальных и специальных алфавитов и ввода в текст графических элементов для оформления таблиц. В конце 90-х годов появился новый международный стандарт Unicode, который отводит под символ 2 байта. Каждый блок из 2-х байт может находиться в 2 16 =65536 состояниях. Этого достаточно, чтобы в одной таблице собрать символы большинства алфавитов ми- ра. Правда, длина текста удваивается, и скорость его обработки за- медляется. Но, в связи с существенным увеличение памяти и быстро- действия современных компьютеров, этот факт несущественен. 21 1.11. Кодирование графической информации в компьютере Графическая информация в докомпьютерную эпоху регистри- ровалась и воспроизводилась в аналоговой форме. Чертежи, рисунки создавались с помощью сплошных линий и мазков разной величины и цвета. Дискретное представление графики получается за счет того, что экран монитора разбивается на строки и колонки. Совокупность получившихся клеточек (точек) называется растром, каждая точка – пикселем. Количество строк и колонок в растре – это разрешение (разрешающая способность) экрана. Типовые разрешения: 1024768 , 800600 пикселей. Первым указывается количество ко- лонок, вторым – количество строк в растре. Для монохромных изображений общепринятым считается ко- дирование цвета одного пикселя в 1байте. Это позволяет передать 254 оттенка серого плюс черный и белый цвета (всего 256 вариантов). Цветные изображения могут кодироваться разными способами в за- висимости от того, для какой цели создаѐтся рисунок. Метод (система) RGB (True color) – от слов Red, Green, Blue удобен для изображений, рассматриваемых на экране, выводи- мых на устройство записи на киноплѐнку. Оттенки цвета создаются смешением лучей трѐх базовых цветов разной интенсивности. Под значение интенсивности каждого луча отводится 1 байт, т. е.различают 256 уровней интенсивности. Для совокупности трѐх лучей получается 256 3 =16 777 216 17 млн. разных вариантов, каж- дый из которых создает свой оттенок цвета. Метод (система) CMYK – от слов голубой (Cyan), пурпурный (Magenta), жѐлтый (Yellow), чѐрный (blacK): удобен для изображе- ний, которые предполагается печатать на бумаге. Он учитывает осо- бенности полиграфии, в которой цвет получается смешением четырѐх красок. Для кодирования одного пикселя требуется 4 байта и можно передать 256 4 4 млрд. оттенков. Для WEB-документов учитывать такое обилие оттенков не- удобно, так как это приводит к файлам очень больших размеров, и их неудобно пересылать по сети. Поэтому в них используются так назы- ваемые индексированные цвета: из всего обилия возможных комби- наций выбрано 256 базовых оттенков. Это позволило для запомина- ния цвета каждого пикселя использовать только 1 байт. Каждому со- 22 стоянию байта сопоставляется определенная комбинация интенсив- ностей базовых цветов. *.JPG, *.GIF, *.PNG- кодировки объединяют области рисунка, закрашенные близкими оттенками, и сохраняют для них усреднѐнный цвет. За счет этого размеры графических файлов существенно уменьшаются. В компьютерной документации коды RGB- и CMYK-цвета представляются так: 1). Интенсивности каждого базового цвета перечисляются в том порядке, который использован в аббревиатуре используемой сис- темы. Эти интенсивности представляются в 16-ричной позиционной системе (п. 1.9). 2). Перед полученным кодом оттенка размещают символ #. Примеры составления кодов для некоторых цветов: #000000 – чѐрный цвет – нулевая интенсивность каждого луча, т. е. нет ни одного цвета; #B5B5B5 – какой-то оттенок серого цвета, т. к. интенсивности всех лучей одинаковы; #FFFFFF – белый цвет – все цвета в максимальной интенсив- ности; #CF35D1 – номера интенсивностей базовых лучей в десятич- ной системе: красного CF = 12 *16 + 15 = 207; зелѐного – 35 = 3 * 16 + 5 = 53; синего – D1 = 13 *16 + 1 = 209. |