|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Особенности выполнения операций над числами с плавающей запятойПри сложении (вычитании) чисел с плавающей запятой и одинаковыми порядками следует сложить (вычесть) мантиссы и результату присваивается порядок, общий для исходных чисел. Если порядки исходных чисел разные, то сначала эти порядки выравниваются (число с меньшим порядком приводится к числу с большим порядком), затем выполняется операция сложения (вычитания) мантисс. Если при выполнении операции сложения мантисс возникает переполнение, то сумма мантисс сдвигается вправо на один разряд, а порядок суммы увеличивается на 1. При умножении чисел с плавающей запятой их мантиссы перемножаются, а порядки складываются. При делении чисел с плавающей запятой мантисса делимого делится на мантиссу делителя, а для получения порядка частного из порядка делимого вычитается порядок делителя. При этом если мантисса делимого больше мантиссы делителя, то мантисса частного окажется больше 1 (происходит переполнение) и ее следует сдвинуть на один разряд вправо, одновременно увеличив на единицу порядок частного. Выполнение арифметических операций над числами, представленными в дополнительных кодах При выполнении арифметических операций в ЭВМ применяются модифицированные коды, которые отличаются от простого использованием для изображения знака числа двух разрядов. Второй знаковый разряд служит для автоматического обнаружения ситуации переполнения разрядной сетки: при отсутствии переполнения оба знаковых разряда должны иметь одинаковые цифры (нули или единицы), а при переполнении разрядной сетки цифры в них будут разные. Сложение производится по обычным правилам сложения двоичных чисел: единица переноса, возникающая из старшего знакового разряда, просто отбрасывается. Примеры сложения (запятая условно отделяет знаковый разряд от самого числа): Х = –1101; Y = 1001. Результат сложения: 11,0011 + 00,1001 = 11,1100 (или –0100); Х = 1101; Y = 1001. Результат сложения: 00,1101 + 00,1001 = 01,0110 (переполнение, после сдвига вправо получим 00,10110, или +10110); Х = 1101; Y = –1001. Результат сложения: 00,1101 + 11,0111 = 100,0100 (или 00,0100); Х = –1101; Y = –1001. Результат сложения: 11,0011 + 11,0111 = 10,1010 (переполнение, после сдвига вправо получим 11,01010, или –10110). Умножение чисел в дополнительных кодах осуществляется по обычным правилам умножения двоичных чисел. Единственной особенностью является то, что если сомножитель является отрицательным (знаковые разряды равны 11), то перед началом умножения следует приписать к нему слева столько единиц, сколько значащих разрядов у другого сомножителя справа от запятой. Результат (произведение) всегда в дополнительном коде. ПРИМЕЧАНИЕ Добавление единиц слева перед отрицательным числом не изменяет его величины, так как перед положительным числом можно написать сколь угодно нулей, не изменяя величины числа; наоборот, перед отрицательным числом (в дополнительном или обратном кодах) добавление лишних нулей недопустимо. Примеры операции умножения: Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |