ПРЕДСТАВЛЕНИЕ ВЕЩЕСТВЕННЫХ ЧИСЕЛ.




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

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

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

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

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

А = ±т 2±р,

где т – мантисса числа, р – порядок числа,.

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

При записи числа с плавающей точкой выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы, на­пример:

Рис.2.4. Пример представления вещественного числа

Максимальное значение порядка при таком представлении вёщественных чисел, когда под порядок отводится, например, шесть I двоичных разрядов (как на рис. 2.4), составит pmax= 111111 =26-1=63 , а это означает, что в четырех байтах можно записать максимальное вещественное число А = 263~ 1019. Как видно из приведенной мера, всего 32 двоичных разряда могут представлять очень большие числа.

Если под порядок отвести 7 разрядов, то получим, что порядок максимального вещественного числа будет равен p =2 -1=127 , т.е.A =2127 1038 с точностью около семи десятичных разрядов (2 -1).| Когда такой точности не хватает, используется формат удвоенной точности, при котором для записи мантиссы отводится дополнительная область. Это позволяет получить большее число значащих цифр в мантиссе при том же диапазоне порядков.

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

Для упрощения действий над порядками их сводят к микроопе­рациям над целыми положительными числами путем искусственного смещения значения порядка p на величину +|p | [33]. Смещенный порядок определяется по формуле

Е = p + |p |

В смещенном порядке знак отсутствует. Для представления Е необходимо столько же разрядов, как и для представления модуля порядка и знака. Так, если порядок будет занимать один байт в числе, то 7 разрядов в обычном представлении в нем отводится под модуль порядка, и ртах= 27-1. Теперь, прибавляя к любому порядку число p (+127), получим смещенный порядок. Например, если p = + 5, то E =5 + 127 = 132 . Размещая E без знака, получим представление смещенного порядка 1000 0100 в разрядной сетке размером в 1 байт. Истинный порядок числа может быть определен простым вычитани­ем значения смещения его формата.

Смещенный порядок с нулями во всех разрядах соответствует наибольшему отрицательному порядку, а смещенный порядок с еди­ницами во всех разрядах - наибольшему положительному порядку. Величина E=p указывает на нулевой порядок. Смещенный порядок намного упрощает операции сравнения и сдвига чисел. Например, сравнение двух вещественных чисел (одинакового формата и знака) происходит так, как если бы они были двоичными целыми без знака. Таким образом, при побитном сравнении чисел слева направо первый же отличный бит определяет отношение этих чисел, поэтому нет не­обходимости вести сравнение дальше.

Если при сложении мантисс появляется цифра с весом 2°, то есть мантисса вида 1,..., то считается, что произошло левое нарушение нормализации числа, когда |m| 1. А если в микрооперациях получена мантисса |m|<1/2, то это соответствует правому нарушению нормализации числа, когда в старшем разряде мантиссы с весом 2 появляется нуль.

Учитывая, что нормализованная мантисса всегда содержит 1 в старшем разряде, часто мантиссу сдвигают на один разряд влево, увеличивая точность представления числа включением в разрядную сетку еще одного младшего разряда мантиссы. Единица с весом 2 сдвигается в разряд с весом 2°, однако в разрядной сетке ОЗУ она не размещается и восстанавливается только в регистрах сопроцессора. Если представить число в формате с одинарной точностью, где под порядок отводится байт, оно будет иметь вид:

                               
                                 

Смещенный порядок мантисса без старшей единицы   Знак мантиссы

 


Наибольшее отличное от нуля по модулю число, которое может быть представлено в формате одинарной точности, будет равно 2 *(1 - 2 ), а наименьшее -2 *(1/2)= 2 .

В зависимости от целей программирования в ЭВМ используют­ся различные форматы данных. Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наимень­шего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.

Стандартные форматы представления вещественных чисел:

1. Одинарный - 32-разрядное нормализованное число со знаком,
8-разрядным смещенным порядком и 24-разрядной мантиссой
(старший бит мантиссы, всегда равный 1, не хранится в памяти
и размер поля, выделенного для хранения мантиссы, составляет
только 23 разряда).

2. Двойной - 64-разрядное нормализованное число со знаком, 11-
разрядным смещенным порядком и 53-разрядной мантиссой 1
(старший бит мантиссы не хранится и размер поля, выделенного |
для хранения мантиссы, составляет 52 разряда).

3. Расширенный - 80-разрядное число со знаком, 15-разрядным!
смещенным порядком и 64-разрядной мантиссой. Позволяет |
хранить ненормализованные числа.

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

При выполнении операций умножения и деления порядки не выравниваются. Производится лишь сложение (при умножении) или вычитание (при делении) порядков и умножение или деление ман­тисс. Результат также нормализуется.

Обобщим, как происходит работа с числовой информацией в компьютере на примере вещественных чисел. Всякое десятичное число, прежде чем оно попадает в память компьютера, преобразуется по схеме:A A m*10 , мантисса и порядок числа при этом запи­сываются в двоичной системе счисления. Но на этом преобразование исходного числа не завершается: в полученном нормализованном двоичном числе мантисса и порядок заменяются их кодами и только потом полученные коды порядка и мантиссы перемещаются в ячейки памяти компьютера. Это преобразование осуществляется автомати­чески при вводе данных в компьютер. В процессе выполнения вы­числений коды мантисс и порядка конкретных чисел извлекаются из ячеек памяти и направляются в арифметическое устройство, где над кодами по специальным правилам двоичной арифметики выполняют­ся действия.

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

Арифметические операции с числами в форме с плавающей за­пятой сложнее таких же операций для чисел с фиксированной запя­той. Но зато плавающая запятая позволяет производить операции масштабирования автоматически в самой машине и избавляет от накопления абсолютной погрешности при вычислениях (хотя не избавляет от накопления относительной погрешности) [33,19].

2.3.2. Символьная информация

При двоичном кодировании текстовой информации в компьюте­ре каждому символу ставится в соответствие его код. Традиционно для кодирования одного символа используется количество информа­ции равное, 1 байту или 8 битам (вот почему минимальной группой из соседних запоминающих элементов, с которой компьютер опери­рует как с одним целым, является байт). Подсчитаем приблизитель­ный объем текстовой информации в "Современном словаре ино­странных слов" из 740 страниц, если на одной странице размещается в среднем 60 строк по 80 символов (включая пробелы).:

80*60*740=3 552 000 байт 3469 Кбайт 3,4 Мбайт. Таким образом, объем информации в словаре равен приблизительно 3,4 Мбайт.

Используя всевозможные комбинации из 0 и 1, в восьми двоич­ных разрядах можно закодировать 28=256 различных символов. Тако­го количества символов вполне достаточно для представления тек­стовой информации, включая большие и маленькие буквы латинского и национального (например, русского) алфавита, знаки препинания, цифры, скобки, знаки арифметических действий, кавычки, графиче­ские символы и некоторые дополнительные символы.

Кодирование в данном случае заключается в том, что каждому символу ставится в соответствие уникальный десятичный код от 0 до 255 или соответствующий ему двоичный код от 00000000 до 11111111. Таким образом, человек различает символы по их начерта­нию, а компьютер - по их коду. Например, при нажатии клавиши с латинской буквой А в оперативную память передается двоичный код 01000001. При выводе символа на экран дисплея производится деко­дирование: по двоичному коду символа на экране строится его изо­бражение. Кодирование и декодирование происходят в компьютере автоматически за миллионные доли секунды.

Для сокращения записей и удобства восприятия вместо двоич­ных кодов используют шестнадцатеричные. Например, код латинской буквы А задается шестнадцатеричным числом 4116, код знака < -числом ЗС16. Используемые в вычислительной технике кодовые ком­бинации символов представляют в виде кодировочных (кодовых) таблиц. Кодировочные таблицы имеют 16 строк и 16 столбцов (16*16=256 символов), которые нумеруются обычно шестнадцатеричными цифрами от 0 до F. Место символа в таблице определяет его шестнадцатеричный код, при этом вначале записывается номер стро­ки. Например, если символ стоит в строке 7 и столбце D, то его код ID.

Заметим, что числа в компьютере могут быть представлены двумя способами. Если число используется для вычислений, то оно переводится в двоичную систему счисления (например, 27 =110112) и его двоичный код размещается в памяти компьютера. Если это чис­ло используется в тексте, то оно будет кодироваться в соответствие с кодовой таблицей, т.е. цифра 2 заменяется кодом 32, цифра 7 - кодом 37, и полный код этого числа при кодировании текста будет иметь вид 3237.

На разных типах компьютеров используют разные кодировочные таблицы. В качестве одного из стандартов во всем мире принята таблица ASCII (American Standard Code for Information Interchange - Американский стандартный код для информационного обмена), ко­дирующая ровно половину возможных символов - от 0 до 127 (табл.2.12).

 

Таблица 2.12

Все другие стандарты кодировочных таблиц включают этот Фрагмент без изменений, а во второй половине содержат коды национальных алфавитов, символы псевдографики и некоторые математи­ческие знаки.

В последнее время появился новый международный стандарт символьного кодирования UNICODE, в котором каждый символ ко­дируется 2-мя байтами и поэтому с его помощью можно закодировать уже не 28=256, а 216=65536 различных символов, включая математи­ческую символику, греческий алфавит и др.

2.3.3. Графическая информация

Мониторы современных компьютеров могут работать в двух режимах: текстовом и графическом. Информация, которая выводится на экран дисплея в текстовом режиме, является текстовой и кодиру­ется как символьная информация. При этом экран дисплея обычно разбивается на 25 строк по 80 символов в строке. В каждую позицию экрана (знакоместо) может быть выведен один из 256 символов. В текстовом режиме на экран монитора можно выводить тексты и про­стые рисунки, составленные из символов псевдографики.

С 80-х гг. начала развиваться технология обработки на ЭВМграфической информации. В графическом режиме экран дисплея разделяется на отдельные светящиеся точки (пиксели), количество которых определяет разрешающую способность монитора и зависит от его типа и режима (например, 640 по горизонтали и 480 по вертикали при 16 цветах или 800 по горизонтали и 600 по вертикали при 256 цветах). При хранении графических изображений количество элемен­тов, заносимых в память, соответствует количеству точек экрана, за­нятых данным изображением. Такую форму представления графиче­ских изображений, состоящих из отдельных точек (пикселей), назы­вают растровой.

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

Рис.2.5. Кодирование графического изображения

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

Современные мониторы имеют следующие цветовые палитры: 16, 256, 65 536 (high color), 16 777 216 (true color) и выше. Опреде­лим, сколько разрядов потребуется для кодирования цвета одного пикселя для различной палитры. Один пиксель черно-белого экрана (два цвета) кодируется 1 битом информации (например, 0 - цвет чер­ный, 1 - цвет белый). Для кодирования четырех (22) цветов потребу­ется 2 бита, восьми (23) цветов - 3 бита, а шестнадцати (24) цветов -4 бита. Таким образом, количество различных цветов п, которые можно закодировать в k битах, вычисляется по формуле n=2 . В табл. 2.13 показана зависимость информационной емкости одного пикселя от цветовой палитры монитора.

Пример кодировки для 16 цветов приведен в табл. 2.14.

Подсчитаем объем памяти необходимый для хранения одного 16-цветного графического изображения на мониторе EGA, имеющего 640 точек по горизонтали и 350 по вертикали. Так как 16-цветное изображение требует 4 бита на каждую точку экрана, а всего точек 640*350, то получим

4*640*350 = 896 000 бит) = 112 000 (байт) =110 (Кбайт).

Растровый способ хранения графической информации применя­ется для рисунков типа аппликации, отсканированных фотографий, иллюстраций и т.п..

Ввод и хранение в компьютере технических чертежей и им по­добных графических изображений осуществляется по-другому. Лю­бой чертеж состоит из отрезков, дуг, окружностей. Положение каж­дого отрезка на чертеже задается координатами двух точек, опреде­ляющих их начало и конец, окружность задается координатами цен­тра и длиной окружности, дуга - координатами начала и конца, цен­тром и радиусом. Для каждой линии указывается ее тип: тонкая, штрихпунктирная и т. д. Такая форма представления графической информации называется векторной. Минимальной единицей, обраба­тываемой специальными программами, при векторной форме пред­ставления графической информации является объект (прямоугольник, круг, дуга). Хранение графической информации, представленной в векторной форме, на несколько порядков сокращает необходимый объем памяти по сравнению с растровой формой представления гра­фической информации. Такая информация о чертеже вводится в ЭВМ как обычная буквенно-цифровая и обрабатывается в дальнейшем специальными программами.

2.3.4. Звуковая информация

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

В процессе кодирования фонограммы непрерывная звуковая волна разбивается по времени на отдельные маленькие временные Участки (элементарные звуки). На графике это выглядит как замена гладкой кривой на последовательность "ступенек" (рис.2.6)

 

Рис. 2.6 Пример кодировки звуковой информации

Для каждого участка устанавливается определенная величина амплитуды, каждому значению амплитуды присваивается двоичный код. Качество кодирования зависит от количества измерений уровня сигнала в единицу времени. Современные звуковые карты обеспечи­вают двухбайтовое кодирование звука, а это 216=65536 уровней сиг­нала (для кодирования русской речи достаточно 40 - 45 уровней эле­ментарных звуков). Периодически определяет уровень звукового сиг­нала и превращает его в цифровой код аналого-цифровой преобразо­ватель. Этот уровень сигнала и записывается на магнитный диск, но уже как цифровой код. С диска цифровой код подается на цифро-аналоговый преобразователь, который преобразует цифровые сигна­лы в аналоговые.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: