Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебник.doc
Скачиваний:
192
Добавлен:
13.05.2015
Размер:
27.91 Mб
Скачать

1.5. Представление информации в компьютере

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

Целые числа хранятся в формате с фиксированной запятой. В этом случае каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа (для запятой разряд не отводится). Для хранения целых неотрицательных чисел отводится одна ячейка памяти (8 бит). Например, число 100 (100=11001002) будет храниться следующим образом: 01100100 (заполнены должны быть все разряды ячейки, поэтому любое число запишется в виде 8 цифр). Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Таким образом, максимальное целое неотрицательное число равно 111111112=255. Минимальное значение достигается в случае, когда во всех ячейках записаны нули, то есть минимальное значение равно 0. Отметим, что диапазон изменения целых неотрицательных чисел в компьютере: от 0 до 255.

Для хранения целых чисел со знаком отводится две ячейки памяти (16 бит), причем старший (левый) разряд отводится под знак числа (0 – число положительное, 1 – отрицательное). Запись положительного целого числа со знаком называется прямым кодом. Например, число 2008 (2008=111110110002) запишется следующим образом: 0000011111011000. Максимальное положительное целое число со знаком будет равно 32767 (32767=1111111111111112). Для представления отрицательных целых чисел со знаком используется дополнительный код. Для получения дополнительного кода отрицательного числа а можно использовать простой алгоритм:

  1. Записать модуль числа а в прямом коде.

  2. Инвертировать полученный прямой код (заменить все единицы нулями, а все нули единицами).

3. К полученному инвертированному коду прибавить единицу.

Задача 1.29. Записать дополнительный код для числа –300.

Решение:

1. Запишем прямой код числа 300 (300 = 1001011002): 0000000100101100.

2. Инвертируем полученный код: 1111111011010011.

3. Добавим к инвертированному коду единицу (1=0000000000000001): 11111110110100112+00000000000000012=11111110110101002.

Ответ: 1111111011010100. 

Опишем как выполнить обратную операцию.

Задача 1.30. Дополнительный код числа а имеет вид 1111111111110101. Определить число а.

Решение:

Для нахождения числа а выполним алгоритм для нахождения обратного кода в обратном порядке:

1. Вычтем из данного кода единицу. Получим инвертированный код: 11111111111101012–00000000000000012=11111111111101002.

2. Получим прямой код из инвертированного: 0000000000001011.

3. Найдем модуль числа а. |а|=10112=123+022+121+120=8+0+2+1=11.

Ответ: – 11. 

Дополнительный код представляет собой дополнение модуля отрицательного числа а до 0. То есть, должно выполнятся равенство: а + |а|=0. Проверим это равенство для числа а = – 300. Прямой код модуля числа а мы нашли в п. 1 решения задачи 1.5.1. (0000000100101100), дополнительный код числа а – в п. 3 (1111111011010100). Найдем сумму этих кодов:

Так как в две ячейки памяти поместится только 16 младших разрядов, то сумма а + |а| запишется в виде 16 нулей, то есть сумма будет равна 0.

Минимальное значение отрицательного целого числа со знаком будет соответствовать коду 1000000000000000. Найдем это число:

1. Вычтем из кода 1000000000000000 единицу. Получим инвертированный код: 0111111111111111.

2. Получим прямой код из инвертированного: 1000000000000000.

3. Этот код соответствует модулю отрицательного числа, равному 32768. А значит, минимальное значение отрицательного числа со знаком будет равно – 32768.

Для хранения длинных целых чисел со знаком отводится четыре ячейки памяти (32 бита). «Механизм» записи чисел аналогичен целым числам со знаком. Старший разряд отводится под знак, остальные используются для записи числа в прямом или обратном коде. Диапазон длинных целых чисел составляет: от – 2147483648 до 2147483647.

Достоинством представления чисел в формате с фиксированной запятой являются простота и наглядность представления. Недостатком такого представления является небольшой диапазон представления величин, недостаточный для решения большинства задач.

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

а = m gn (1.7.),

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

Например, число 123,45 в экспоненциальной нормализованной форме запишется 0,12345103, число 0,0058 запишется 0,5810-2, а число 10,112 запишется 0,1011222 (порядок записывается в десятичной системе).

Число в формате с плавающей запятой занимает в памяти компьютера 4 (число обычной точности) или 8 (число двойной точности) ячейки. При этом выделяются разряды для хранения знака порядка, порядка, знака мантиссы и мантиссы. Для хранения чисел обычной точности отводится 32 разряда, причем для хранения знака порядка отводится старший разряд, для хранения порядка – следующие 7 разрядов, для хранения знака мантиссы – 9 слева разряд и для хранения мантиссы – младшие 23 разряда. Для записи числа в формате с плавающей запятой обычной точности необходимо сначала перевести его в двоичную систему счисления, а затем записать его в экспоненциальной нормализованной форме. Причем первая цифра двоичной мантиссы запишется в 23 разряд.

Задача 1.30. Перевести число 23,5 в формат с плавающей точкой обычной точности.

Решение:

Переведем число 23,5 в двоичную систему счисления: 23=101112, 0,5=0,12  23,5=10111,12.

Запишем полученное число в экспоненциальной нормализованной форме: 10111,12=0,101111225.

Переведем порядок числа в двоичную систему: 5=1012.

Запишем число в формате с плавающей запятой обычной точности:

Ответ: 00000101010111100000000000000000. 

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

Задача 1.31. Перевести число – 6,125 в формат с плавающей точкой обычной точности.

Решение:

Переведем число в двоичную систему счисления: 6=1102, 0,125=0,0012  – 6,125= – 110,0012.

Запишем полученное число в экспоненциальной нормализованной форме: – 110,0012= – 0,110001223.

Переведем порядок в двоичную систему счисления: 3=112.

Так как мантисса отрицательная, то необходимо перевести ее в дополнительный код. Для этого запишем прямой код модуля мантиссы: 011000100000000000000000. Инвертируем его: 100111011111111111111111. Добавим к инвертированному коду единицу: 100111100000000000000000.

Запишем число в формате с плавающей точкой обычной точности:

Ответ: 00000011100111100000000000000000. 

Максимальное значение чисел обычной точности примерно равно 1,71038. В формате двойной точности для хранения порядка и его знака отводится 11 разрядов, соответственно для хранения мантиссы и ее знака отводится 53 разряда.

Представление текстовой информации. Мы уже отмечали, что машинный алфавит содержит 256 символов и информационный вес одного символа равен 1 байту. Представление текстовой информации в компьютере заключается в том, что каждому символу ставится в соответствие уникальный двоичный код от 00000000 до 11111111 (всего 256 кодов от 0 до 255). При вводе в компьютер символа происходит кодирование его графического изображения в двоичный код, а в процессе вывода символа на экран компьютера происходит обратный процесс – декодирование, то есть преобразование кода символа в его изображение.

Важно, чтобы каждому символу соответствовал только один код, и наоборот каждый код соответствовал только одному символу. Для этого существуют специальные таблицы кодов. Первые 33 кода (от 0 до 32) соответствуют не символам, а специальным операциям (перевод строки после нажатия клавиши Enter, удаления последнего символа после нажатия клавиши Backspace и т.д.). Коды с 33 по 127 являются интернациональными и соответствуют символам латинского алфавита, цифрам, знакам арифметических операций и знакам препинания. Коды с 128 по 255 являются национальными и зависят от особенностей конкретного языка. Было создано несколько различных кодовых таблиц для русских букв.

В настоящее время широкое распространение получил новый международный стандарт Unicode, который отводит на каждый символ 2 байта, а значит с его помощью можно закодировать 655536 (216) различных символов. Эту кодировку поддерживают все версии пакета Microsoft Office, начиная с 1997 года.

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

Графическая информация на экране монитора формируется из определенного количества строк, которые в свою очередь содержат определенное количество точек. Эти точки называются пикселями, а изображение называется растровым или пиксельным (точечным). Качество изображения определяется разрешающей способностью монитора, то есть количеством точек, из которых она складывается. В современных персональных компьютерах обычно используются три основные разрешающее способности экрана: 800600, 1024768 и 12801024 точки.

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

N = 2I (1.8.),

где N – количество цветов, I – глубина цвета.

Например, при глубине цвета в 8 бит, количество используемых цветов равно 256 (28). Наиболее распространенными значениями глубины цвета являются 16, 24 и 32 бита.

Любой цвет формируется за счет смешивания трех базовых цветов: красного, зеленого и синего. Такая цветовая модель называется RGB-моделью (Red – красный, Green – зеленый, Blue – синий). При глубине цвета в 24 бита на каждый из цветов выделяется по 8 бит. Это значит, что для каждого из цветов возможны 256 (28) уровней интенсивности, каждый из которых задан двоичным кодом от 0 (00000000) до 255 (11111111). Приведем пример кодирования некоторых цветов при глубине цвета в 24 бита (табл. 1.9.).

Цвет

Интенсивность

Красный

Зеленый

Синий

Черный

00000000

00000000

00000000

Красный

11111111

00000000

00000000

Зеленый

00000000

11111111

00000000

Синий

00000000

00000000

11111111

Голубой

00000000

11111111

11111111

Желтый

11111111

11111111

00000000

Белый

11111111

11111111

11111111

Таблица 1.9. Таблица формирования цветов при глубине цвета в 24 бита.

Задача 1.32. Пусть разрешающая способность экрана равна 1024768 точек, а глубина цвета равна 24 бит. Определить объем видеопамяти, необходимый для хранения изображения.

Решение:

Так как разрешающая способность экрана равна 1024768 точек, то всего на экране расположено 1024768=786432 точек. Так как глубина цвета равна 24 бит, то для хранения одной точки необходимо 24 бит. Тогда для хранения всего изображения необходимо 78643224 бит = 18874368 бит = 2359296 байт = 2304 Кбайт = 2,25 Мбайт видеопамяти.

Ответ: 2,25 Мбайт. 

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

В процессе дискретизации каждому временному участку присваивается значение уровня громкости звука (двоичный код уровня громкости). Чем больше уровней громкости используется при дискретизации, тем большее количество информации будет нести значение каждого уровня и тем качественнее будет звучание. Количество бит, отводимых для хранения уровня громкости, называется глубиной звука. Современные звуковые карты обеспечивают 16 и 24 битную глубину кодирования звука. Количество различных уровней сигнала можно рассчитать по формуле (1.5.2), где N – количество уровней, I – глубина звука. Например, при 16-битной глубине звука количество различных уровней равно 65536 (216).

Качество дискретизации звукового сигнала так же зависит и от частоты дискретизации, то есть от количества временных участков в единицу времени. Чем больше временных участков в одной секунде, тем точнее процесс дискретизации. Обычно в одной секунде лежит от 8 до 48 тысяч временных участков. Это значит, что частота дискретизации может принимать значения от 8 кГц (качество радиосигнала) до 48 кГц (качество звучания аудио-CD). Следует учитывать, что возможны как моно, так и стерео режимы. При стерео режиме для хранения одного временного участка отводится в два раза больше количества информации.

Задача 1.33. Рассчитать информационный объем стерео звукового сигнала длительностью 3 секунды при частоте дискретизации 48 кГц и глубине звука 16 бит.

Решение:

Для хранения одного временного участка отводится 32 бита (глубину звука умножили на 2, так как стерео звуковой сигнал; если был бы моно сигнал, то для хранения отводилось бы 16 бит).

Всего в 1 секунде 48000 временных участков. Так как сигнал длится 3 секунды, то информационный объем сигнала будет равен 34800016 бит = 4608000 бит = 576000 байт = 562,5 Кбайт.

Ответ: 562,5 Кбайт. 

Вопросы:

1. В каком формате будут храниться числа 62; 3000;– 3; 12,3; 62,75?

2. В чем заключаются преимущества и недостатки хранения чисел в формате с фиксированной запятой?

3. Почему информационный вес 1 символа машинного алфавита равен 1 байту?

4. Почему компания Microsoft перешла на стандарт Unicode для кодировки символов?

5. Что такое дискретизация? Для чего она нужна?

6. От чего зависит качество дискретного изображения?

7. Сколько возможно использовать цветов при глубине цвета 7 бит?

8. Что такое частота дискретизации звука? Что она определяет?

9. От чего зависит качество дискретизации изображения (звука)?

Задачи для самостоятельного решения:

Задача 1.34. Записать дополнительный код числа – 66 (целое число со знаком).

Задача 1.35. Дополнительный код числа а имеет вид 1111111111101011. Определить число а.

Задача 1.36. Перевести числа в экспоненциальную нормализованную форму:

а) 2,58; б) 10,55; в) 9876,5; г) 0,00025; д) 0,00123; е) 0,666.

Задача 1.37. Перевести числа в формат с плавающей точкой обычной точности:

а) 17,25; б) – 50.

Задача 1.38. Пусть разрешающая способность экрана равна 800600 точек, а глубина цвета равна 16 бит. Определить объем видеопамяти, необходимый для хранения изображения.

Задача 1.39. Рассчитать информационный объем моно звукового сигнала длительностью 2 секунды при частоте дискретизации 24 кГц и глубине звука 16 бит.