33. Выполнение операций над двоично-десятичными числами. Логические операции. Алгоритмы. Реализация. (1006368)
Текст из файла
33. Выполнение операций над двоично-десятичными числами. Логические операции. Алгоритмы. Реализация.
При двоично- десятичном представлении числа каждой десятичной цифре в соответствие ставится 4 двоичных разряда: 3510 =1000112 =0011 01012-10.
Для двоично-десятичных чисел возможны операции сложения, вычитания, умножения и деления. Для этих операций используются обычные арифметические устройства и определенные корректировки.
Сложение.
Для того, чтобы правильно произвести сложение, используют коды с избытком. (так как может при сложении двух тетрад может получится результат больше 10 (1010), а это не верно).
Алгоритм:
1Увеличиваем каждую цифру десятичного числа (Х) на 6, представляем число в двоично-десятичном коде.
2 Складываем с другим числом (У), также представленном в двоично-десятичном виде.
3 Из тетрад, где не было переноса, вычитаем 6 (складываем с дополнительным кодом числа 6 - 1010). Здесь переносы из тетрад запрещены.
Пример:
359 3 5 9
+218 6 6 6
---- ---------
577 9 11 15 –> 1001.1011.1111
2 1 8 0010.0001.1000
Вычитание.
Операцию вычитания заменяем операцией сложения с использованием дополнительного кода : с= a-b = a+(-b).
При образовании дополнительного кода автоматически происходит добавление 6.
Дополнительный код 2510 - 7510
25: 0010.0101
1101.1011 - доп. код
-------------
13-6=7 11-6=5
При вычитании из большего числа меньшее происходит перенос в знаковый разряд, если из меньшее вычитаем большее - переноса в знаковый разряд нет. Таким образом, знак результата при BCD-кодировании может быть определен переносом из старшей тетрады.
7-5 5-7
0|111 0|101
+1|011 1|001
------- -------
10|010 1|110
есть перенос нет переноса
Алгоритм:
1 Имеем BCD код X
2 К нему прибавляем дополнительный BCD код Y
3 Получаем результат, отслеживая переносы из тетрад.
4.1 При наличии переноса из старшей тетрады получим результат с>0. Тогда тетрады, из которых не было переноса , необходимо скорректировать (прибавить дополнительный код 6)
738-291=447
738 0111.0011.1000
291 0010.1001.0001
доп. код 291 1101.0110.1111
4.2 Если переноса из старшей тетрады не было, получили результат с<0. Тогда необходимо образовать дополнительный код от результата, к тем тетрадам, из которых был перенос, прибавляем 1010.
291-738= - 447
291 0010.1001.0001
738 0111.0011.1000
доп. код 738 1000.1100.1000
Умножение.
C=x*y
Y={yn,......,y2,y1}
Операция умножения сводится к сложению и в BCD коде выполняется долго.
Алгоритм:
1 В счетчик заносится значение y1 ; если y1 >0, то к предварительному нулевому значению результата прибавляется множимое по известным правилам.
2 Вычитаем 1 из значения счетчика, если счетчик больше 0, опять прибавляем множимое и т.д.
3 Когда значение счетчика равно 0, промежуточный результат вправо на одну тетраду.
4 В счетчик заносится y2 и т.д.
Пример: 34*21 =714
34 0011.0100
Сч=1
Мы должны к нулевому результату прибавить число 34. По правилам сложения к Х прибавляем 6,выполняем сложение, затем проводим корректировку - из тетрад, где не было переноса, вычитаем 6 (складываем с доп. кодом 6)
0000.0000
+0110.0110
---------------
0110.0110
+0011.0100
---------------
-
так как переноса не было из тетрад, выполняем коррекцию.
+1010.1010
---------------
0011.0100
Уменьшаем значение счетчика на 1, так как в счетчике получится 0, записываем в счетчик значение 2 и сдвигаем результат вправо на одну тетраду.
Сч=2
0000.0011.0100 производим сложение по правилам (прибавляем 6 к каждой цифре)
0110.1001.1010
+ 0011.0100.0000
----------------------
1001.1101.1010 производим коррекцию, так как переноса не было из тетрад
+1010.1010.1010
----------------------
0011.0111.0100
Сч=1
0011.0111.0100 прибавляем к каждой цифре 6
1001.1101.1010
+ 0011.0100.0000
----------------------
1101.0001.1010 корректируем только первую и последнюю тетраду, так как из средней
+1010.0000.1010 был перенос
-----------------------
0111.0001.0100
7 1 4
Деление.
Алгоритм:
1 Из делимого вычитаем выровненный по левому краю делитель по известным правилам.
2 Если результат положительный, то к текущему разряду результата прибавляем 1.
3 Опять вычитаем делитель и проверяем знак результата и т.д.
4 Если полученный результат отрицательный, то восстанавливаем предыдущий остаток и сдвигаем его влево на одну тетраду, используя незадействованные цифры.
5 Продолжаем вычитать делитель, но прибавляем 1 к следующему разряду результата. и т.д.
Пример:
714/34=21
7140111.0001.0100
340011.0100
доп код 34 1100.1100
0111.0001.0100
+ 1100.1100
---------------
0011.1101 был перенос из старшей тетрады, значит результат положительный,
+0000.1010 производим коррекцию той тетрады, из которой не было переноса.
---------------- добавляем 1 к старшей тетраде результата.
0011.0111
+1100.1100
---------------
0000.0011 был перенос из старшей тетрады, значит результат положительный,
+1100.1100 производить коррекцию не нужно, так как перенос был из обеих тетрад
-------------- добавлаем еще 1 к старшей тетраде результата.
1100.1111 переноса из старшей тетрады не было, значит результат отрицательный,
восстанавливаем предыдущий остаток и сдвигаем влево, используя
последнюю тетраду
0000.0011.0100
+ 1100.1100
----------------------
0000.0000.0000 добавляем 1 к следующей тетраде результата.
Остаток получили 0, следовательно числа делятся нацело.
Результат – 0010.0001=21
4
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.












