Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Индикаторы переноса и переполнения
Рассмотрим более подробно ситуацию, приводящую при увеличении четырехбитового числа (т.е. при прибавлении к нему единицы) к неверному арифметическому результату, возникающему из-за конечности числовой системы ЭВМ. В числовой системе без знака такая проблема встает при увеличении слова 1111, при этом имеет место перенос единицы из знакового бита в никуда. В случае системы чисел со знаком перенос из старшего бита дает верный результат: 1111 + 0001 = (1)0000 (что правильно: -1 + 1 = 0), но увеличение слова 0111 приводит к ошибочной ситуации: 0111 + 1 = 1000 (7 + 1 = -8), при этом имеет место перенос в знаковый бит. В процессоре ЭВМ (той его части, которая ответственна за выполнение арифметических операций) имеется два индикатора — индикатор переноса и индикатор переполнения. Каждый индикатор содержит один бит информации и может быть установлен процессором (в этом случае ему придается значение, равное единице) или сброшен (равен нулю). Индикатор переноса указывает за перенос из знакового бита за пределы слова, а индикатор переполнения на перенос в знаковый бит. Таким образом, после завершения операции, в которой происходит перенос в самый старший бит, процессор устанавливает индикатор переполнения; если такого переноса нет, то индикатор переполнения сбрасывается. Индикатор переноса обрабатывается аналогичным образом. Важно то, что после выполнения операции процессором ЭВМ сигнализирует о состоянии индикаторов, и их можно проверить. Если состояние индикаторов указывает на неправильный арифметический результат, то необходимо исправить эту ситуацию, т.е. пользователю ЭВМ предоставляется возможность контролировать правильность выполнения арифметических операций. Пример 1 Пример 2 Пример 3
|