русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ЛЕКЦИЯ № 3


Дата добавления: 2013-12-23; просмотров: 1437; Нарушение авторских прав


1005 1004

1003 1002

1001 1000

 

Числа без знака имеют диапазон представления от 000 до 3778 -для байта, от 000000 до 1777778 - для слова. Битовые величины задают значения отдельных разрядов байта или слова.

Представление чисел в формате с фиксированной запятой. Числа с фиксированной запятой могут занимать байт или слово. Если число с фиксированной запятой занимает байт, то для его представ­ления используются разряды с 0-го по 6-й. Разряд 7 называется знаковым. При размещении числа с фиксированной запятой в слове для его представления используются разряды с 0-го по 14-й. Знак числа содержится в разряде 15. Значения знакового разряда: 0 - для положительных чисел; 1 - для отрицательных чисел.

Отрицательные числа в формате с фиксированной запятой представляются в дополнительном коде (посредством операции до­полнения до 2-х).

 

Таблица 3.7

Примеры представления чисел с фиксированной запятой

  Байт Слово
Число Восьмеричный код Двоичный код Восьмеричный код Двоичный код
+5
+63
-5
-63

 

Диапазон представления чисел с фиксированной запятой: для байта - от - 12810 до +12710; для слова - от –3276810 до +3276710. При выполнении операций над числами, представленными в формате с фиксированной запятой, они масштабируются таким образом, чтобы каждое число лежало в интервале (-1, +1). Другими словами, в этом случае ЭВМ оперирует только с числами, по модулю не превос­ходящими единицы. При этом необходимо следить за тем, чтобы в результате операций результат не получился большим, чем 2k - 1, где k - число разрядов, отведенных для представления в машине. Такая опасность есть при выполнении операций сложения и деления. Опас­ность представляют также операции вычитания и умножения. При вычитании может получиться так, что разность станет числом меньшим, чем представляется в машине, и результат исчезнет. При многократном умножении (из-за того, что умножаются числа, мень­шие единицы) может произойти то же самое. Поэтому при ис­пользовании формата представления чисел с фиксированной запятой приходится следить как за случаями возможного переполнения разрядной сетки машины, так и за случаями, связанными с появ­лением машинного нуля. Необходимость постоянно следить за тем, чтобы числа в машине не вышли за пределы интервала (-1, +1), а так­же неизбежное в таких устройствах накопление абсолютной погреш­ности вычислений из-за перемасштабирования, при котором цифры младших разрядов (а именно в них накапливается абсолютная погрешность) передвигаются в старшие разряды, привели к тому, что в универсальных ЭВМ представление чисел с фиксированной запятой практически перестало применяться. Оно сохраняется в специализированных вычислительных системах, где диапазон изменения чисел заранее проанализирован, в некоторых микропроцессорах и микро-ЭВМ.



Представление чисел в формате с плавающей запятой. Любое вещественное число х, представленное в системе счисления с осно­ванием N, можно записать в виде

xmN±p ,

где m - мантисса, р - характеристика (или порядок) числа.

Если |m| < 1, то запись числа называется нормализованной слева. Следующие примеры показывают, как можно представить любое число в форме с плавающей запятой:

а) в десятичной системе счисления

372,95 = 0, 37295´103;

25 = 0,025 ´103 = 0,25 ´102;

0,0000015 = 0,15 ´ 10-5 = 0,015 ´ 10-4;

б) в двоичной системе счисления

11010, 1101 = 0,0110101101 ´ 26;

0,011011=0,11011 х2-1;

0,1=0,1x20

(здесь порядок определяет, на сколько разрядов необходимо осуществить сдвиг относительно запятой).

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

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

Нормализованное число одинарной точности, представленное в формате с плавающей запятой, записывается в память следующим образом: знак числа - в бите 15 первого слова (0 - для положитель­ных и 1 - для отрицательных чисел); порядок размещается в битах 7 -14 первого слова, а мантисса занимает остальные 23 бита в двух словах. Нормализованное число двойной точности записывается в четыре слова памяти и отличается от представления чисел одинарной точностью только тем, что продолжение мантиссы размещается в следующих за первым трех последовательных словах памяти, а всего под мантиссу в этом случае отводится 55 бит.

Порядок числа с плавающей запятой изменяется в диапазоне от -12810 (2008) до +12710 (1778) и запоминается увеличенным на 12810 (2008). Такой способ представления порядка называется смещенным.

Следует иметь в виду, что хотя для мантиссы отведены 23 разряда -для чисел одинарной точности и 55 разрядов - для чисел двойной точности, в операциях участвуют 24 и 56 разрядов соответственно, так как старший разряд мантиссы нормализованного числа не хранится, т.е. имеет место так называемый скрытый разряд. Однако при аппаратном выполнении операций этот разряд автоматически восстанавливается и учитывается при выполнении операций. Порядок числа также учитывает скрытый старший разряд мантиссы.

Также заметим, что нормализованная мантисса в двоичной системе счисления всегда представляется десятичным числом т, лежащим в диапазоне 0,5 £ m < 1.

Примеры представления чисел с плавающей запятой.

1)0,110 = 0,0(6314)8 = 0,000(1100)2 = 0,(1100)2´2-3; -310 = (-3 + 200)8 = 1758 = 011111012.

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

2) -49,510 = -61,48= -110001,1002 = -0,11000112´26; 610 = (6 + 200)8 = 2068 = 100001102.

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

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

 

Представление символьной информации в ЭВМ

 

В отличие от обычной словесной формы, принятой в письменном виде, символьная информация хранится и обрабатывается в памяти ЭВМ в форме цифрового кода. Например, можно обозначить каждую букву числами, соответствующими ее порядковому номеру в алфавите: А - 01, Б - 02, В - 03, Г - 04, ... , Э - 30, Ю - 31, Я - 32. Точно так же можно договориться обозначать точку числом 33, запя­тую - 34 и т.д. Так как в устройствах автоматической обработки ин­формации используются двоичные коды, то обозначения букв надо перевести в двоичную систему. Тогда буквы будут обозначаться следующим образом: А - 000001, Б - 000010, В - 000011, Г - 000100, ... , Э - 011110, Ю - 011111, Я - 100000. При таком кодировании любое слово можно представить в виде последовательности кодовых групп, составленных из 0 и 1. Например, слово ЭВМ выглядит так: 011110000011001110.

При преобразовании символов (знаков) в цифровой код между множествами символов и кодов должно иметь место взаимно­-однозначное соответствие, т.е. разным символам должны быть наз­начены разные цифровые коды, и наоборот. Это условие является единственным необходимым требованием при построении схемы преобразования символов в числа. Однако существует ряд прак­тических соглашений, принимаемых при построении схемы преоб­разования исходя из соображений наглядности, эффективности, стандартизации. Например, какое бы число ни назначили коду для знака О (не следует путать с числом 0), знаку 1 удобно назначить число, на единицу большее, чем код О, и т.д. до знака 9. Аналогичная ситуация возникает и при кодировке букв алфавита: код для Б на единицу больше кода для А, а код для В на единицу больше кода для Б и т. д. Таким образом, из соображений наглядности и легкости запоминания целесообразно множества символов, упорядоченных по какому-либо признаку (например, лексико-графическому), коди­ровать также с помощью упорядоченной последовательности чисел.

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

При назначении кодов знакам надо также учитывать соглашения, касающиеся стандартизации кодировки. Можно назначить знаковые коды по своему выбору, но тогда возникнут трудности, связанные с необходимостью обмена информацией с другими организациями, использующими кодировку, отличную от нашей. В настоящее время существует несколько широко распространенных схем кодирования. Например, код BCD (Binary-Coded Decimal) - двоично-десятичный код используется для представления чисел, при котором каждая десятичная цифра записывается своим четырехбитовым двоичным эквивалентом. Этот код может оказаться полезным, когда нужно преобразовать строку числовых знаков, например, строку из числовых знаков «2537» в число 2537, над которым затем будут производиться арифметические действия. Расширением этого кода является EBCDIC (Extended Binary-Coded Decimal Interchange Code) - расширенный двоично-десятичный код обмена информацией, который преобразует как числовые, так и буквенные строки.

В ЭВМ, начиная с типа PDP (или СМ) и по сегодняшний день в IBM PC применяется код ASCII (American Standard Code for Information Interchange) - американский стандар­тный код обмена информацией. Этот код генерируется некоторыми внешними устройствами (принтером, АЦПУ) и используется для об­мена данными между ними и оперативной памятью ЭВМ. Например, когда нажимаем на терминале клавишу G, то в результате этого действия код ASCII для символа G (1000111) передается в ЭВМ. А если надо этот символ распечатать на АЦПУ, то его код ASCII должен быть послан на печатающее устройство.

Отечественной версией кода ASCII является код КОИ-7 (двоич­ный семибитовый код обмена информацией), который совпадает с ним, за исключением букв русского алфавита.




<== предыдущая лекция | следующая лекция ==>
Представление целых чисел без знака и со знаком | Логические операции над высказываниями.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.