Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 59

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 59 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 592019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 59)

Под зто поле отведено 8 бит, таким образом, имеется 255 различных значений от 0 до 255, соответствующих степеням 2 в диапазоне от -127 до 128 (с учетом сдвига); + Н вЂ” мантисса, под которую отведено 23 бит. Так как в нормализованной форме представления вещественных чисел первый бит в мантиссе всегда 1, то его можно опустить и вставлять автоматически аппаратными средствами, тем самым увеличивая точность до 24 бит.

5 определяет знак числа. При заданных Е и Н значение числа получается следующим образом; Параметры Е = 255 и М н 0 Е = 255 н М = О О < Е < 255 Е=ОимнО Е=ОиМ=О Значение Недопустимое значение 2в нч(1 М) 2 'н.м 0 Приведем несколько примеров: н1 - 2' х 1 - 2с'н х П).0(двоичное) = 0 ОШПП 000000...

-1 5 = 2' х 1.5 = 2с"" х (1) 1(двоичное) - 0 ОПП!П 100000.. -5 - -2' х 1.25 = 2'н '" х (1).01(двоичное) - 1 10000001 010000,. Таким образом, диапазон значений получается от 10 "до 10'". В б4-битовом пред- ставлении поле для зкспоненты расширяется до 11 бит, расширяя диапазон ее изме- нения от -1022 до+1023, что приводит к представлению десятичных чисел из диапа- зона от 10 "' до 10'"'. Также используется представление веп(ественных чисел с двойной точностью, то есть с добавлением дополнительного слова к отводимой области памяти для хранения расширенной мантиссы. Обычно встроенные в аппаратную часть арифметические операции (сложение, вычитание, умножение н деление) могут выполняться для чисел н с одинарной, н с удвоенной точностью.

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

С другой стороны, программист может просто объявить вещественную переменную с помощью специальных ключевых слов, например 0000)е или ! оп9 геа), чтобы сообщить компилятору, что эта переменная требует представления с двойной точностью. Вещественные числа с фиксированной точкой Спецификация.

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

Число с фиксированной точкой представляется как последовательность цифр фиксированной длины с десятичной точкой, расположенной в определенном месте между двумя цифрами. Объявление чисел с фиксированной точкой, например, в СОВО!. осуществляется с помощью ключевого слова Р! СТ0КЕ и выглядит следуюшим образом: Х Р1СТ0КЕ 999799 Здесь Х объявляется как переменная с фиксированной точкой, тремя цифрами перед ней и двумя — после. Реализация.

Тип вс>цсствеппых чисел с фиксированной точкой может поддерживаться пецосредспилшо аппаратной частью компьютера или, как было сказано ранее, смоделировап программным способом. Например, в языке Р1.,)1 переменные этого тина объявляются как Р1ХЕ0 0ЕС!МАС Можно заппсатгн 0ЕСЕАКЕ Х Е!ХЕ0 0ЕС)'МА! !!0,3). У Е1ХЕ0 0ЕС!МА! ! 10.2). 1 Г!ХЕ0 0ЕС!МАЕ ! 10,2). Это означает, что переменная Х может содержать вещественные числа с тремя цифрами после десятичной точки, с общим числом используемых в представлении числа цифр ! 0; лля представления чисел, хранящихся в переменных У и Л, также используется веси> 10 пифр, по опп имеют два дробных десятичных разряда, Такие данные хранятся как целочисленные, а десятичная точка (ее положение) является атрибутом объекта данных. Если Х = 103. 421, то и значение Х будет 103 421, а у обьекта даш >ых Х будет атрибут >юд названием масштабный коэффициент (зса1е !асгог, зГ), в данном случае равный трем — зто будет служить указанием, что десятичная точка располагается перед третьей справа цифрой.

Таким образом, в выражении зна ение(Х) - г-знанение!Х) х 10 н 212 Глава 5. Элементарные типы данных 5Г вссгла будет равно трем независимо от и-значения Х. Аналогично если значение У равно 102. 34, то это число будет храниться как целочисленное значение 10 234 с масштабным коэффициентом 5Г = 2, Рассмотрим, как будет выполняться оператор 7=Х+У Если вы возьметесь за решение этой задачи с помощью бумаги и карандаша, в первую очерель вам придется выровнять положение десятичной точки. Поскольку в Х число имеет три знака после десятичной точки, а в У вЂ” только два, вам придется сдвинуть значение У влево па одну позицию и тюлученная сумма будет также содержать три знака после десятичной точки, то сеть получится, что 5Г = 3: Х = 103.42! У = 102.34х т- сави на 1 позицию влево 5цвт - 205.761иасвтаоння нооффициент сулим равен 3 Слвиг влево эквивалентен умножению и-значения переменной У на 10. Фактически выполнясмый код для вычис))ения Х + У, таким образом, представляется в виде Х + У х 10, причем 55=3.

Поскольку у чисел переменной 7 имеются только два знака после запятой (5Г=2), то цам прилется удалить один знак, то есть фактически поделить г-зттачеттие 7 на 10, Тогда получится следующий код для вычисления значения переменной 7; 7 = 1Х + У х 10) / 10 Если масштабный коэффициент известен во время компиляции (так всегда и бывает), транслятор знает, как масштабировать результаты. Аналогично при перемножении чисел с фиксирован~ой точкой Х х У мы получаем результат, перемножая и-эттачеттия этих переменных и складывая затем масштабныс коэффициенты; ргадост = гта)цеХХ) х гуа)цеХу) 51 = 5ГтХ) т 51(У) Вычитаттие и деление осущсствлщотся таким же образом.

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

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

Обычно рациональные числа включаются в языки программирования, чтобы избежать проблем с округлением и усечепием, которые встречаются при использованити вещественных чисел с фиксированной и плавающей точкой. Желательно представлять рациональные числа в виде упорялоченной пары целых чисел неограниченной длины. Такие ллинныс целые числа обычно представляются в виде связанных цепочек областей памяти. На рис. 5А схематически изображены некоторые способы представления чисел различных типов, 5.2. Скалярные типы данных 213 5.2.2. Перечисления Часто возникает потребность задать некоторое ограниченное множество допустимых символических значений лля какой-либо переменной.

Например, переменпая 5СэдспСС1аэз может принимать только четыре различных значения: ГгеэПвэп, 5свпсвсге, Сон( сг и 5еп> сг, — которые соответствуют 1, П, Н1 и 1Ъ курсам. Аналогично переменная Гп>р1оуее5ех (пол работника) может иметь только лва значения: ва1е (мужчина) и (ева1е (жеищииа). В более старых языках, таких как СОВО1.

или ГОЛУТВА(л(, такие переменные объявлялись как пелочислениые и их значениями становились некоторые произвольно выбранные целые числа (например, Ггеэпвап = 1, 5српавоге - 2 и т.д. или ва1е = 0, 'ева1е = 1). Затем в программе эти объекты воспринимались и обрабатывались как обычные целые числа. Использовапис полдиапазопов в таких случаях могло уменьшить объем требуемой памяти, но все же программисту приходилось следить, чтобы к таким переменным пс применялась никак;ш арифметическая операция, в Лаппом случае лишенная смысла. Дело в том, что, хотя присваиваиие нерсмспной Евр1оуее5ех значения 2 или умножение 5тпсеп(Г1п55 иа (евз1е не имеет смысла для указанной интерпретации этих переменных, тра>юлятор пс в состоянии обнаружить такую ошибку.

В языках С, Рааса! и А((а имеется специальный тип перечисление, который в большей степени позволяет программисту непосредственно определять подобные переменные и манипулировать ими. Специфиющия. Перечисление представляет собой упорядоченную последовательность различных алемептов. Программист определяет как буквальные имена этих элементов, так и порядок их следования в нсрсчислснии ие>юсрслствсцно в объявлении псремс>шой. Наприл(ер, в С зто объявление выглядит следующим образом: е>вв 5Ш>(спЛС1плл (Ггелп, 5орп, Эьп>сг.

5еп>ог(; ев>в Евз1оуее5ех (на1е, Гевп1е(. Поскольку в программе обычно используется много перел>сивых одного и того же перечисляемого тица, то довольно часто перечисление определяется как отдел ьный тпп, которому присваивается цмя, что позволяет вп<юлслствии объявлять различные персмепцыс с номошью втого имени, как принадлежащие этому типу. В языке Рапса( объявление, по смыслу аналогичное приведенному выше объявлению С, выглядит следующим образом: (у(>е 0 ллл = (Ггелп, 5орп. Эоп>аг.

5еп>ог>. Затем можно объявлять переменные этого типа: 5щееп(С1алш С1апл. Тгапл(ег5тпееп(С1плл С>аль: Обратите внимание на то, что в опрслслоп ин ти»а вводится сто назван ос, С1азз, которое затем может быть использовано так жс, как название элементарного типа лапцых, например > ПСеоег лля целых чисел. Опрслслсцис типа также определяет литералы ГгезП, 5арП,,(пп>ог и 5ешот, которые могут использоваться в >йхп раммс таким жс образом, как н опрслслснпь>с пспосрслствс>цн> в языке литералы, скажем, 2> или 1.

Следовательно, мы можсл> записать >г 5(эееппс1ллл = эьп>ог тпеп ., вместо мсцсс >юпятцой зацнсп >Ч 5(шея(С1п" л .= 3 Спеп 214 Глава Б. Элементарные типы данных которая потребовалась бы, если бы мы использовали целыс числа, Помимо того, при статической проверке типов компилятором могут быть обнаружены такие он<ибки, как 4< 5<нзеп<С1азг - На1е твеп .. Основные операции иад объектами перечисляемого тина — это операции оп<ошепия (равно, Оопьае чен, неньше нсн и т.д.), операция присваивания и операции знссесзог и ргейссеззог, которые для данного элемспта перечисления опрсдспяют соответственно последующий и предыдущий злемш<ть<, Операция гцссеззог неприменима к последнему элементу перечисления, а операция ргедесеззог соответственноо — к первому. Обратите внимание па то, что для перечислений определен полный набор операций отношения благодаря тому, что набор элементов упорядочен при определении тина.

Реализация. Представление псречислешля как обьекта дшшых в памяти компьютера достаточно просто; каждому элементу псрсчислс<шя при выполнении программы сопоставляется неотрицательное целое число <'сто порядковый номер в последовательности). Поскольку задействовано небольшое количество чисел, причем заведомо неотрицательных, то обычно используются короткие целые числа.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее