Автор: Пользователь скрыл имя, 08 Декабря 2010 в 00:01, реферат
Счисление, нумерация, - это совокупность приемов представления натуральных чисел. В любой системе счисления некоторые символы ( слова или знаки ) служат для обозначения определенных чисел, называемых узловыми, остальные числа ( алгоритмические ) получаются в результате каких – либо операций из узловых чисел. Системы счисления различаются выбором узловых чисел и способами образования алгоритмических, а с появлением письменных обозначений числовых символов системы счисления стали различаться характером числовых знаков и принципами их записи.
1. История развития систем счисления. 2
2. Двоичные системы счисления 6
3. Двоичная арифметика 10
4. Формы представления чисел с фиксированной и плавающей запятой. 13
5. Сложение чисел с фиксированной запятой. 16
6. Сложение чисел с плавающей запятой. 16
7. Умножение чисел с фиксированной запятой. 17
8. Умножение чисел с плавающей запятой. 18
9. Прямой, обратный и дополнительный коды. Модифицированный код. 20
Примеры сложения чисел с фиксированной запятой были рассмотрены выше.
Если имеются два числа в нормальной форме: Х1 = m1 10p1 и Х2 = m2 10p2 , то для того чтобы их можно было сложить, нужно предварительно привести их к одному и тому же порядку Робщ, т. е. преобразовать одно из слагаемых, например, первое следующим образом:
Х1 = m1 10p1 = m1* 10p1 = m1* 10pобщ.
Далее можно
вынести степень основания
Преобразовывать всегда нужно меньше слагаемое, так как в противном случае произойдет переполнение разрядной сетки мантиссы преобразуемого числа.
Машинная операция сложения чисел в нормальной форме распадается таким образом, на 4 этапа:
1. Уравниваются порядки слагаемых: меньший порядок увеличивается до большего, мантисса преобразуемого числа сдвигается вправо (число денормализуется) на соответствующее количество разрядов. Практически в машинах производится вычитание порядков операндов. Знак и модуль разности Р1 - Р2 определяют соответственно, какое из слагаемых нужно преобразовывать и на сколько единиц следует сдвигать мантиссу преобразуемого числа.
2. Производится преобразование мантисс слагаемых в один из модифицированных кодов.
3. Мантиссы слагаемых суммируются по правилам сложения дробных чисел с фиксированной запятой.
4. В случае надобности мантисса суммы переводится в прямой код, производится нормализация суммы и округление ее мантиссы.
ПРИМЕР. Используя дополнительный код, сложить два числа:
[X1]пр = 0 101; 1,10101 и [X2]пр = 0 100 ; 1,11001
доп
[m2]мод = 11,01011
доп
[m3]мод = 110, 111101
доп
отбрасывается запрещенная комбинация
4. Комбинация знаковых цифр мантиссы показывает, что сумма денормализована влево (всегда только на один разряд)
Произведем нормализацию суммы вправо
[m3]мод = 10, 111101 1,0111101
доп
Робщ = 0,101 + 0,001 = 0,110
Далее переводим сумму в прямой код и производим округление ее мантиссы до пяти разрядов.
Ответ: [X3]пр = 0 110 ; 1,1000011 ~ 0 100; 1, 10001
Наиболее просто умножение выполняется в прямом коде, независимо от того, являются ли операнды целыми или дробными числами. В машинах с фиксированной запятой оно реализуется в два этапа.
1. Определяется знак произведения с помощью сложения знаковых цифр сомножителей по модулю два, где нуль соответствует плюсу, а единица - минусу:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
Вручную это эквивалентно:
(+) (+) = (+); (+) (-) = (-); (-) (+) = (-); (-) (-) = (+).
2. Производиться перемножение модулей сомножителей, затем в случае необходимости округление полученного модуля произведения, после чего к модулю результата приписывается его знак, определенный на первом этапе.
Умножение производится по обычным правилам арифметики согласно двоичной таблицы умножения. Произведение модулей |Х3| = |Х1| * |Х2| двух (например дробных) чисел, где множитель Х2 = Х21 2-1 + Х22 2-2 +…+ Х2n 2-n, чаще всего вычисляется как сумма так называемых частичных произведений:
n
/Х3/ = å /Х/ Х2i 2-i
i=1
В машинах может быть реализовано как умножение, начинающееся с младшей цифры множителя (наиболее привычный способ), так и умножение, начинающееся со старшей цифры множителя. При умножении вручную в первом случае частичные произведения сдвигаются влево, во втором - вправо.
ПРИМЕР. Перемножить числа [X1]пр = 0,1010 и [X2]пр = 1,1101
Решение.
1. Определяем знак произведения 0 + 1 = 1.
2. Перемножим
модули операндов, порядок перемножения
определяется нумерацией цифр множителя:
1-й способ
0,1010
х 0,1101
4,3,2,1 номера цифр множителя 1,2,3,4
1010
0000
+1010
1010
0,10000010
После округления приписываем к модулю знак произведения, полученный на первом этапе умножения.
Ответ: [X3]пр = 1,0000010 ~ 1,10000.
Первый способ часто называют умножением младшими разрядами вперед, а второй - умножением старшими разрядами вперед.
Если имеем два сомножителя, заданные в нормальной форме Х1 = m1 10p1 и Х2 = m2 10p2, то их произведение определяется следующим образом:
Х1 Х2 = m1 m2 10p1+р2.
Анализ этого соотношения показывает, что умножение чисел в машинах с плавающей запятой производится в четыре этапа:
1. Определение знака произведения путем сложения по модулю два знаковых цифр мантисс сомножителей.
2. Перемножение модулей мантисс сомножителей по правилам для дробных чисел с фиксированной запятой.
3. Определение порядка произведения путем алгебраического сложения порядков сомножителей с использованием либо дополнительного, либо обратного модифицированного кода.
4. Нормализация
результата и округление мантиссы в случае
необходимости. Поскольку сомножители
обязательно являются нормализованными
числами, то де нормализация произведения
возможна только на разряд и только вправо.
ПРИМЕР. Перемножить числа с плавающей запятой.
Множимое [X1]пр = 0 101; 1,10101
Множитель [X2]пр = 0 100; 1,11001
Решение.
1. Знак произведения 1 + 0 = 1.
2. Перемножаем модули мантисс:
1-й шаг ,0000 0000 - нулевая сумма
+,0000 1010 - 1-е частичное произведение
2-й шаг ,0000 1010 - 2-я сумма
+ ,0000 0000 - 2-е частичное
произведение
3-й шаг ,0000 1010 - 3-я сумма
+ ,0010 1000 - 3-е частичное
произведение
4-й шаг ,0011 0010 - 4-я сумма
+ ,0101 0000 - 4-е частичное произведение
, 1000 0010 - модуль произведения мантисс.
Находим порядок произведения:
[р2]мод = 11,101
доп
[р3]мод = 100, 010
доп
теряется
Производим округление мантиссы произведения.
Ответ: [X3]пр = [Х1 Х2]пр = 0 010 ; 1 100
Прямой,
обратный и дополнительный
коды. Модифицированный
код.
Введем определение прямого, обратного и дополнительного кодов. Рассмотрим двоичное число В соответствии с изложенным выше число R кодируется следующим образом:
0
R= 1
или, в более общем случае, если ,
0
R=
Так как , эти соотношения можно переписать таким образом:
,
=
Представление чисел в соответствии с данной формулой называется прямым кодом числа
Если , то формула перепишется в таком виде:
,
=
Аналогичным образом кодируются и числа, модуль которых не меньше единицы.
Пример:
Записать числа в прямом коде:
Из равенства
следует, что операцию вычитания y из x можно заменить операцией сложения S-y и х с последующим вычитанием из результата величины S.
R
= S+R
Представление чисел в соответствии с называется дополнительным кодом числа R.
Операцию вычитания можно заменить операцией сложения и на основе соотношения
.