Chapter_06 (1110558), страница 2

Файл №1110558 Chapter_06 (Книга с сайта Баулы по главам) 2 страницаChapter_06 (1110558) страница 22019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Другими словами, для случая рассмотренного нами формата представления вещественных чисел длиной в четыре байта, этот результат по модулю меньше 1.0*2–126., т.е.должен иметь нулевой машинный порядок. В этом случае, следуя стандарту ANSI/IEEE 754-1985,центральный процессор пытается представить этот результат уже как ненормализованное число,т.е. в виде 0.M*2–127, и только в том случае, если результат и для такого представления слишкоммал по модулю, выдаёт в качестве ответа машинный ноль.2 Использование для очень маленьких помодулю чисел ненормализованного представления позволяет расширить диапазон машинных чисел.Можно показать, что если использовать нулевой машинный порядок для представления нормализованных чисел, то самое маленькое число будет 1.0*2-127. В то же время, если зарезервировать ну1С изложением нетрадиционного математического анализа можно, например, ознакомиться по книгам[13,14].2Вообще говоря, во многих ЭВМ существует возможность задать такие режимы работы центральногопроцессора с вещественными числами, при которых выработка в качестве результата операции таких особыхзначений, как ненормализованное число или  будет вызывать аварийную ситуацию (сигнал прерывания).

Этиаварийные ситуации носят названия "потеря значимости" (flowing underflow) и "вещественное переполнение"(flowing overflow) соответственно.4левой машинный порядок для представления ненормализованных чисел, но наименьшее машинноевещественное число будет равно0.Mmin*2–127=0.00000000000000000000001*2-127=2-150.Такое использование ненормализованных вещественных чисел позволяет более "мягко" приближаться к нулю при проведении вычислений с вещественными числами, что часто уменьшает погрешность таких вычислений.

Следует, однако, отметить, что использование ненормализованныхчисел имеет и существенный недостаток, оно влечёт за собой уменьшение точности представлениятаких чисел, т.е. в этих числах меньшее число значащих цифр. В заключение рассмотрения машинного представления вещественных чисел отметим, что при изучении архитектуры ЭВМ они не будутпредставлять для нас большого интереса, и поэтому (а также, в основном, из-за недостатка времени)операции над вещественными числами мы изучать не будем.6.4. Целые числаМы уже знаем, что хранимые в памяти машинные слова (наборы битов) могут трактоваться поразному. При вызове в устройство управления этот набор битов трактуется как команда, а при вызове в арифметико-логическое устройство – как число.

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

Например, десятичное число 13, хранимое в формате одного байта, будет записано как прямой код 00001101.Если инвертировать прямой код (т.е. заменить все "1" на "0", а все "0" на "1"), то получим такназываемый обратный код числа. Например, обратный код числа 13 равен 11110010.Для представления отрицательных знаковых чисел используется так называемый дополнительный (complementary) код, который можно получить из обратного кода прибавлением единицы.Например, получим дополнительный код числа –13:Прямой кодОбратный код00001101111100101+11110011Дополнительный кодСуществует и другой алгоритм преобразования отрицательного числа X в дополнительный код.Для этого необходимо записать в прямом коде значение 2N-|X|, где значение N равно максимальному числу бит в представлении целого числа (в нашем предыдущем примере целое число имеетдлину один байт и N=8). Таким образом, дополнительный код числа –13 можно вычислить и так:28-13 = 256–13 = 100000000–00001101 = 11110011Отметим интересное свойство дополнительного кода: если сложить его с прямым кодом, то получится ноль и "лишняя" единица, не помещающаяся в отводимое число разрядов (именно поэтомуэтот код и называется дополнительным, т.е.

он "дополняет" прямой код до нуля). Возвращаясь кпредставлению числа –13, имеем:Дополнительный кодПрямой код11110011+00001101100000000Итак, в знаковой системе счисления отрицательные числа для нашего компьютера представляются в дополнительном коде, а неотрицательные – в прямом коде. Заметим, что при знаковой трактовке целых чисел крайний левый бит определяет знак числа ("1" для отрицательных чисел). Этотбит так и называется знаковым битом целого числа. Для знаковых целых чисел числовая ось несим-5метрична: количество отрицательных чисел на единицу больше, чем количество положительных чисел (докажите это!).Заметим также, что процесс перехода от прямого кода к дополнительному коду и обратно с технической точки зрения очень прост и может быть легко реализован в центральном процессоре.Очень важно понять, что все арифметические операции над знаковыми и беззнаковыми целымичислами производятся по абсолютно одинаковым алгоритмам, что и естественно, потому что центральный процессор "не знает", какие это числа "на самом деле".

В то же время, с точки зрения программиста, результаты таких операций могут быть разными для знаковых и беззнаковых чисел. Рассмотрим примеры сложения в центральном процессоре нашей ЭВМ двух чисел длиной в один байт.В первом столбике будет записано внутреннее двоичное представление чисел, а во втором и третьем– беззнаковое и знаковое значения этих же чисел в привычной для нас десятичной системе счисления. Пример 1.1111110000000101100000001Б/з.25251Знак.–451Из этого примера видно, что для знаковой трактовки чисел операция сложения выполнена правильно, а при рассмотрении чисел как беззнаковые, результат будет неправильным (1 вместо правильной суммы 257).

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

Для рассмотренного выше примера флаг CF (carry flag) после сложения примет значение,равное единице (иногда говорят, что флаг поднят), сигнализируя программисту о том, что при беззнаковом сложении произошла ошибка. Рассматривая результат нашего примера в знаковых числах,мы получили правильный ответ, поэтому соответствующий флаг результата знакового сложения OF(overflow flag) будет положен равным нулю (или, как говорят, опущен). Флаг CF называется флагомпереноса, а OF – флагом переполнения. Пример 2.011110010000101110000100Б/з.12111132Знак.12111-124В данном примере ошибка будет, наоборот, в случае со знаковой трактовкой складываемых чисел, поэтому флаги CF и OF принимают после сложения соответственно значения 0 (флаг опущен,ошибки нет) и 1 (флаг поднят, была ошибка). Пример 3.1111011010001001101111111Б/з.246137383Знак.–10–119+127В данном случае результат будет ошибочен как при беззнаковой, так и при знаковой трактовкескладываемых чисел, поэтому формируется содержимое флагов: CF = OF = 1.

Легко придуматьпример, когда результат сложения будет правильный как для знаковых, так и для беззнаковых чисел(сделайте это самостоятельно!), после такого сложения оба флага будут опущены.Кроме формирования флагов CF и OF команда сложения целых чисел меняет и значения некоторых других флагов в регистре флагов FLAGS. Для нас будет важен флаг SF, в который всегда зано1В этом примере при сложении знаковых чисел мы тоже отбрасываем "лишний" левый бит результата,однако здесь надо учесть, что отбрасываемая двоичная единица является незначащей двоичной цифрой суммы, и её можно безболезненно отбросить без изменения значения этой отрицательной суммы.6сится знаковый (крайний левый) бит результата, таким образом, при знаковой трактовке чисел этотфлаг сигнализирует, что результат получился отрицательным.

Важно отметить, что анализироватьфлаг знака числа SF имеет смысл только тогда, когда флаг переполнения OF опущен (нулевой), иначе это бесполезно, так как правильный результат не получен.Кроме того, при программировании часто представляет интерес и флаг ZF, который устанавливается в 1, если результат тождественно равен нулю, в противном случае этот флаг устанавливаетсяв 0. Заметим, что флаги в нашей архитектуре выполняют ту же роль, что и регистр признака результата ω в изученной ранее учебной ЭВМ УМ-3.Представление отрицательных чисел в дополнительном коде неудобно для программистов, однако, позволяет существенно упростить арифметико-логическое устройство. Другими словами,удобство программирования было принесено в жертву простоте реализации центрального процессора.

Заметим, например, что вычитание при этом представлении можно выполнять как сложение с дополнительным кодом числа.Основная причина использования двух систем счисления для представления целых чисел заключается в том, что при одновременном использовании в программе обеих систем счисления диапазонпредставимых целых чисел увеличивается в полтора раза. Это было весьма существенно для первыхЭВМ с их весьма небольшим объёмом памяти. Сейчас это уже не имеет такого большого значенияпри программировании, однако, мы не можем отказаться от этих двух систем счисления для представления целых чисел из-за принципа программной совместимости старших моделей нашего семейства ЭВМ с младшими, несмотря на то, что эти младшие модели уже давно не выпускаются.16.5. Сегментация памятиПамять нашей ЭВМ имеет уже знакомую нам сегментную организацию.

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

Тип файла
PDF-файл
Размер
696,42 Kb
Тип материала
Высшее учебное заведение

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

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