Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Арифметические операции с числами в формате с плавающей запятой↑ ⇐ ПредыдущаяСтр 4 из 4 Содержание книги
Поиск на нашем сайте
Сложение и вычитание Производятся в несколько этапов: 1) Выравниваются порядки чисел в сторону большего (чтобы не получить мантиссы > 1) 2) Складываются мантиссы. Для представления отрицательных чисел используется модифицированный дополнительный код. Порядок суммы будет равен общему порядку слагаемых. 3) Нормализуется результат: порядок и мантисса изменяются так, чтобы первая значащая цифра результата попала в первый разряд после запятой.
Пример 1: Вычесть из числа A = 20.0 число B = 11.0. A = 20 = 101002 =.101 * 25 =.101 * 10101 (все числа –двоичные) B = 11 = 10112 =.1011 * 24 =.1011 * 10100 Процессор для определения разности порядков вычитает из порядка числа A порядок числа B и получает 1. Т.к. порядок числа A на единицу больше порядка числа B, порядок числа B увеличивается на 1 и мантисса при этом сдвигается на 1 разряд вправо относительно точки: B =.01011 * 10101 Мантисса числа B должна быть записана как отрицательное число (нужно выполнить вычитание): B = -010110…0 = 1|101001…1 = 1|101010…0 Обратный код Дополнительный Сложение мантисс в модифицированном дополнительном коде: 00| 1010 00…0 (число A) + 11| 1010 10…0 (число B) 1| 00| 0100 10…0 (сумма, порядок = 1012) Произошло нарушение нормализации. Нормализация результата: мантисса сдвигается влево, порядок уменьшается: A - B =.1001* 10100 = 10012 = 9.0
Пример 2: Сложить A = 5.0 и B = 28.0. A = 5 = 1012 =.101 * 25 =.101 * 1011 (все числа –двоичные) B = 28 = 111002 =.111 * 25 =.111 * 10101 Процессор для определения разности порядков вычитает из порядка числа A порядок числа B и получает -2. Т.к. порядок числа A на 2 меньше порядка числа B, порядок числа A увеличивается на 2 и мантисса при этом сдвигается на 2 разряда вправо относительно точки: A =.00101 * 10101 Сложение мантисс в модифицированном коде: 00| 0010 10…0 (число A) + 00 | 1110 00…0 (число B) 01| 0000 10…0 (сумма, порядок = 1012)
Произошло нарушение нормализации. Нормализация результата: мантисса сдвигается вправо, порядок увеличивается: A + B =.100001* 10110 = 1000012 = 33.0
При сложении и вычитании чисел с плавающей запятой при сложении мантисс переполнение не фиксируется. Переполнение может возникнуть в процессе нормализации, если порядок превысит максимально допустимый.
Умножение и деление
При умножении чисел в формате с плавающей запятой порядки складываются, а мантиссы перемножаются, затем результат нормализуется. При делении из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя, затем результат нормализуется.
Двоично-десятичное кодирование информации
Двоично-десятичный код — (binary-coded decimal [BCD]) форма записи целых чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода (вместо каждой десятичной цифры записывают ее двоичное значение). Например, десятичное число 310 будет записано в двоичном коде как 1001101102, а в двоично-десятичном коде как 0011 0001 0000BCD. Преимущества и недостатки Преимущества · Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры. · Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность. · Упрощены умножение и деление на 10, а также округление. По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в простейших арифметических операциях должен выводить в точности такой же результат, какой подсчитает человек на бумаге. Недостатки
Запрещённые в BCD битовые комбинации: 1010 1011 1100 1101 1110 1111
Пример операции сложения двоично-десятичных чисел: Требуется: Найти число A = D + C, где D = 3927, C = 4856 Решение: Представим числа D и C в двоично-десятичной форме: D = 3927 = 0011 1001 0010 0111 C = 4856 = 0100 1000 0101 0110 Суммируем числа D и С по правилам двоичной арифметики: * ** 0011 1001 0010 0111+ 0100 1000 0101 0110 ___________________= 1000 0001 0111 1101 - Двоичная сумма+ 0110 0110 - Коррекция ___________________ 1000 0111 1000 0011 '*' — тетрада, из которой был перенос в старшую тетраду '**' — тетрада с запрещённой комбинацией битов В тетраду, помеченую символом *, добавляем шестёрку т.к по правилам двоичной арифметики перенос унёс с coбой 16, а по правилам десятичной арифметики должен был унести 10. В тетраду, помеченую символом **, добавляем шестёрку, так как комбинация битов 1101 (что соответствует десятичному числу 13) является запрещённой.
|
||||
Последнее изменение этой страницы: 2016-08-26; просмотров: 1051; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.166.241 (0.009 с.) |