Формы представления частного в операциях деления

Содержание

Операция деления понятий. Сущность и виды деления. Классификация

Наряду с определением другой логической операцией с понятиями выступает деление. Различие между этими операциями заключается в следующем: если в определении раскрывается содержание понятия, то в делении – объем.

Для того чтобы определить объем того или иного понятия, необходимо произвести операцию деления. Поскольку объем понятия представляет собой известный класс предметов, то в процессе деления мы выясняем, из каких подклассов состоит исходный класс. Эта операция служит для конкретизации полученного знания о предметах, соответствующих делимому понятию.

Операция деления понятий

Деление – логическая операция, раскрывающая объем понятия путем распределения входящих в него предметов по группам на основе избранного признака.

Логическая операция деления имеет следующую структуру:

Объем понятия, который подлежит делению, называется объемом делимого понятия.

Классы, которые получились в результате деления, называются членами деления.

Признак, соответственно которому мы делим объем понятия на подклассы, называется основанием деления (рис. 4.8).

Рис. 4.8

Тот или иной признак может быть основанием деления, только если он может выступать в различных формах.

Выполним операцию деления объема понятия “дерево”. Объем этого понятия объединяет всю совокупность растущих деревьев. Но мы знаем, что все деревья можно подразделить, например, на хвойные и лиственные или по названию породы дерева: клен, береза, липа и т.п. (рис. 4.9).

А – делимое понятие, В, С, D – члены деления.

Рис. 4.9

Деление понятия не следует смешивать с мысленным расчленением целого на части. Если члены деления представляют собой самостоятельные виды, то при расчленении выделяются отдельные части предмета, из которых он состоит. Например, мы можем мысленно расчленить самолет на фюзеляж, крылья, хвостовое оперение и т.д. Сущность расчленения целого на части заключается в раскрытии структуры предмета, его устройства (рис. 4.10).

Рис. 4.10

Чтобы избежать смешения операций деления и мысленного расчленения целого на части, необходимо использовать вместо слова “делятся” слово “бывает”. Например: “Сутки делятся на утро, день, вечер, ночь” – логической ошибки не видно, а если сказать, что “Сутки бываютесть) утро, день, вечер, ночь” – логическая ошибка очевидна, поскольку деление – это переход от рода к виду, а мысленное расчленение целого на части – это переход от целого к части. Вполне очевидно, что то, что говорится о целом, нельзя, сказать о его части, но то, что говорится о роде, можно сказать и о виде. Например: “Сутки делятся на четные и нечетные”. И обратная операция: “От части к целому”.

Виды деления. Классификация

Различают два вида деления: деление по видоизменению признака и дихотомическое.

При делении по видоизменению признака основанием деления будет служить признак, при изменении которого образуются видовые понятия, входящие в объем делимого (родового) понятия (рис. 4.11).

Пример.

Государства (А) по изменению форм правления делятся на монархические (В) и республиканские (С), а по изменению форм государственного устройства – на унитарные (D) и федеративные (Е).

Рис. 4.11

При дихотомическом делении (деление надвое) объем делимого понятия A делится на два исчерпывающих его взаимоисключающих множества В и не-B (рис. 4.12).

Рис. 4.12

Пример.

Современные государства (А) можно разделить на республиканские (В) и нереспубликанские (не-В).

Особое значение в науке имеет классификация.

Классификацией называется распределение предметов по классам согласно сходству и различию между ними, которое производится с таким расчетом, чтобы каждый класс занимал фиксированное место в системе других классов.

Классификация отличается от деления тем, что она представляет собой многоступенчатое деление: вначале осуществляется деление общего понятия, затем каждого из полученных членов деления и так далее, пока не будут получены наиболее мелкие разновидности изучаемых предметов.

Классификация может быть вспомогательной и естественной.

Вспомогательная классификация создается с целью наиболее легкого отыскания того или иного предмета среди множества классифицируемых предметов. Примером служит распределение фамилий в списке учебного журнала по буквам алфавита.

В случае вспомогательной классификации знание о том, в какой группе находится тот или иной предмет, не дает возможности сделать какие-либо утверждения относительно свойств этого предмета. Так, если в алфавитном списке первой стоит фамилия студента Абросимова, то это никак ие характеризует его как учащегося.

Естественная классификация – это распределение предметов по группам на основании их существенных признаков. При естественной классификации, в отличии от вспомогательной, знание о том, к какой группе принадлежит тот или иной предмет, дает возможность сделать несколько утверждений о его свойствах. Классическим примером естественной классификации служит периодическая система химических элементов Д. И. Менделеева.

К особенностям классификации можно отнести:

  • 1) системный и многоуровневый характер деления;
  • 2) распределенность предметов по группам, имеющим определенное и постоянное место;
  • 3) возможность определения характеристик предметов по их месту в классификации.

“Тем не менее не существует общепринятой характеристики классификации как особого вида деления в силу неразработанности общей теории классификации. Различие между просто делением и делением, которое называется классификацией, можно определить так: деление как логическая операция применяется для решения той или иной конкретной практической задачи, поэтому его результаты специально не фиксируются и не сохраняются в качестве итога человеческих знаний. Классификация же обычно представляет собой определенный этап развития науки и поэтому является предметом изучения конкретных наук” [1] .

Правила деления

В процессе деления понятия необходимо соблюдать четыре правила, которые обеспечивают четкость и полноту деления.

1. Деление должно быть соразмерным.

Задача деления заключается в том, чтобы перечислить все виды делимого понятия. Поэтому объем членов деления должен быть равен в своей сумме объему делимого понятия.

  • а) “неполное деление” – сумма объемов членов деления меньше объема делимого понятия. Например: “Налоги (Л) бывает федеральные (В) и местные (С)”. Не указаны региональные налоги (D);
  • б) “деление с излишними членами” – сумма объемов членов деления больше объема делимого понятия. Например: “Главные члены предложения (Л) – подлежащее, (В) – сказуемое, знаки препинания”. Член (С) – лишний.
  • 2. Деление должно производиться по одному основанию. Мы нарушим это правило, если, например, разделим международные договоры на справедливые, несправедливые, устные и письменные, так как сначала международные договоры мы разделили по признаку их равноправности, а затем по признаку формы их заключения.

Ошибка: “деление не по одному основанию”.

3. Члены деления должны исключать друг друга, т.е. находиться в отношении соподчинения. Неверно, например, такое деление: “Войны бывают справедливые, несправедливые и освободительные”. Освободительные войны относятся к числу справедливых войн, следовательно, члены деления в данном примере не исключают друг друга.

Ошибка: “члены деления не исключают друг друга”.

4. Деление должно быть непрерывным. Это означает, что при делении необходимо переходить от родового понятия к ближайшим видовым понятиям. В противном случае возникает “скачок в делении”. Например: грамматические предложения бывают простыми, сложносочиненными и сложноподчиненными (пропущено понятие “сложные предложения”).

Формы представления частного в операциях деления

Во всех языках программирования под выражением подразумева­ется конструкция, составленная из констант, переменных, знаков операций, функций, скобок. Выражение определяет порядок вычис­ления некоторого значения. Если это числовое значение, то такое выражение называют арифметическим. Вот несколько примеров ариф­метических выражений, записанных по правилам языка Си:

Читайте также:  Взлом уличного международного-междугороднего телефонного аппарата urmet

х++ х+++ b – – n *2 n *=1

Три первых выражения имеют традиционную форму для язы­ков программирования высокого уровня, поэтому их смысл оче­виден. Следующие четыре выражения специфичны для языка Си.

Опишем набор операций, используемых в Си, а также правила записи и вычисления выражений. Напомним, что операция, при­меняемая к одному операнду, называется унарной, а операция с двумя операндами — бинарной.

Арифметические операции . К арифметическим операциям отно­сятся:

– вычитание или унарный минус;

+ сложение или унарный плюс;

% деление по модулю ;

++ унарная операция увеличения на единицу (инкремент);

– – унарная операция уменьшения на единицу (декремент).

Все операции, кроме деления по модулю, применимы к лю­бым числовым типам данных. Операция % применима только к целым числам.

Рассмотрим особенности выполнения операции деления. Если делимое и делитель — целые числа, то и результат — целое число. На­пример, значение выражения 5/3 будет равно 2, а при вычисле­нии 1/5 получится 0 .

Если хотя бы один из операндов имеет вещественный тип, то и ре­зультат будет вещественным. Например, операции 5./3, 5./3., 5/3. дадут вещественный результат 1.6666.

Операции инкремента и декремента могут применяться только к переменным и не могут — к константам и выражениям. Операция ++ увеличивает значение переменной на единицу, операция – – — умень­шает значение переменной на единицу. Оба знака операции могут записываться как перед операндом (префиксная форма), так и после операнда (постфиксная форма), например: ++х или х++, –а или а–. Три следующих оператора дают один и тот же ре­зультат:

Различие проявляется при использовании префиксной и пост­фиксной форм в выражениях. Проиллюстрируем это на примерах. Первый пример:

В результате выполнения переменные получат следующие зна­чения: а = 4, b = 3, с= 6. Второй пример:

Результаты будут такими: а = 4, b = 3, с=12.

Объяснение следующее: при использовании постфиксной формы операции ++ и – – выполняются после того, как значение перемен­ной было использовано в выражении, а префиксные операции — до использования. Поэтому в первом примере значение переменной с вычислялось как произведение 3 на 2, а во втором — как произве­дение 4 на 3.

По убыванию старшинства арифметические операции распо­ложены в следующем порядке:

Одинаковые по старшинству операции выполняются в порядке слева направо. Д ля изменения порядка выполне­ния операций в выражениях могут применяться круглые скобки.

Операции отношения . В Си используется тот же набор операций отношения .

меньше или равно,

>= больше или равно, равно,

Как уже говорилось раньше, в стандарте Си нет логического типа данных. Поэтому результатом операции отношения является целое число: если отношение истинно — то 1, если ложно — то 0.

Результатом второго и третьего отношений будет 0 — ложь; результат четвертого отношения равен 1 — истина; результат пер­вого отношения зависит от значения переменной а.

Логические операции . Три основные логические операции в языке Си:

! операция отрицания (НЕ),

&& конъюнкция, логическое умножение (И),

| | дизъюнкция, логическое сложение (ИЛИ).

Например, логическое выражение, соответствующее системе неравенств 0 x

Обратите внимание на то обстоятельство, что здесь не понадо­бились круглые скобки для выделения операций отношения. В Си операции отношения старше конъюнкции и дизъ­юнкции. По убыванию приоритета логические операции и опера­ции отношения расположены в следующем порядке:

Помимо рассмотренных в Си имеются поразрядные логические операции. Эти операции выполняются над каждой парой соответ­ствующих двоичных разрядов внутреннего представления операн­дов. Их еще называют битовыми логическими операциями. Знаки битовых логических операций:

& поразрядная конъюнкция (И),

| поразрядная дизъюнкция (ИЛИ),

^ поразрядное исключающее ИЛИ,

поразрядное отрицание (НЕ).

Битовые логические операции вместе с операциями поразряд­ного сдвига влево ( >) позволяют добраться до каждого бита внутреннего кода. Чаще всего такие действия прихо­дится выполнять в системных программах.

Операция присваивания. Знак операции присваивания =. Следствием отме­ченного факта является то, что присваивание, как любой другой знак операции, может несколько раз входить в выражение. На­пример:

Присваивание имеет самый низкий приоритет (ниже только у операции «запятая»). Кроме того, операция присваивания — правоассоциативная. Это значит, что несколько подряд расположен­ных присваиваний выполняются справа налево. Поэтому в приве­денном выше выражении первой выполнится операция сложе­ния, затем переменной с присвоится значение суммы, затем это значение присвоится переменной b и в конце — переменной а.

В языке Си имеются дополнительные операции присваивания, совмещающие присваивание с выполнением других операций. Среди них: +=, -=, /=, *=, %=. Приоритет у них такой же, как и у простого присваивания. Примеры использования этих операций:

а+=2 эквивалентно а=а+2,

х-=а+ b эквивалентно х=х-(а+ b ),

р/=10 эквивалентно р=р/10,

m*=n эквивалентно m=m*n,

г%=5 эквивалентно г=г%5.

Заметим, что вместо выражения а=а+2 предпочтительнее пи­сать в программе а+=2, поскольку второе выражение будет вы­числяться быстрее.

Операция явного преобразования типа (операция «тип»). Приме­нение этой операции имеет следующий формат:

Операндом могут быть константа, переменная, выражение. В результате значение операнда преобразуется к указанному типу. Примеры использования преобразования типа:

(long) 8, (float) 1 , (int) x%2

По поводу последнего выражения заметим, что приоритет опе­рации «тип» выше деления (и других бинарных арифметических операций), поэтому сначала значение переменной х приведется к целому типу (отбросится дробная часть), а затем выполнится де­ление по модулю.

Следующий фрагмент программы иллюстрирует одну из прак­тических ситуаций, в которой потребовалось использовать преоб­разование типа:

В результате переменная с получит значение 0,5. Без преобразо­вания типа ее значение стало бы равно 0.

Операция sizeof . Эта операция имеет две формы записи:

sizeof (тип) и sizeof (выражение)

Результатом операции является целое число, равное количе­ству байтов, которое занимает в памяти величина явно указан­ного типа или величина, полученная в результате вычисления выражения. Последняя определяется также по типу результата выражения. Хотя по форме записи это похоже на функцию, од­нако sizeof является именно операцией. Ее приоритет выше, чем у бинарных арифметических операций, логических опера­ций и отношений. Примеры использования операции:

sizeof (int) результат — 2

sizeof (1) результат — 2

sizeof (0.1) результат — 8

sizeof (1L) результат — 4

sizeof (char) результат — 1

sizeof (‘ a’) результат — 2

Операция «запятая». Эта необычная операция используется для связывания нескольких выражений в одно. Несколько выражений, разделенных запятыми, вычисляются последовательно слева на­право. В качестве результата такого совмещенного выражения при­нимается значение самого правого выражения. Например, если переменная х имеет тип int, то значение выражения (х=3, 5*х) будет равно 15, а переменная х примет значение 3.

Операция условие ?: . Это единственная операция, которая име­ет три операнда. Формат операции:

выражение1 ? выражение2 : выражение 3

Данная операция реализует алгоритмическую структуру ветв­ления. Алгоритм ее выполнения следующий: первым вычисляется значение выражения 1, которое обычно представляет собой некоторое условие. Если оно истинно, т.е. не равно 0, то вычисляется выражение 2 и полученный результат становится результатом опе­рации. В противном случае в качестве результата берется значение выражения 3.

Пример 1. Вычисление абсолютной величины переменной X можно организовать с помощью одной операции:

Пример 2. Выбор большего значения из двух переменных аи Ь:

Пример 3. Заменить большее значение из двух переменных аи b на единицу:

Правила языка в данном случае позволяют ставить условную операцию слева от знака присваивания.

Операции ( ) и [ ]. В языке Си круглые и квадратные скобки рассматриваются как операции, причем эти операции имеют наи­высший приоритет. Их смысл будет раскрыт позже.

Подведем итог всему разговору об операциях Си/Си++, сведя их в общую табл. 2 и расположив по рангам. Ранг операции — это порядковый помер в ряду приоритетов. Чем больше ранг, тем ниже приоритет. В таблице отражено еще одно свойство опера­ций — ассоциативность. Если одна и та же операция, повторя­ющаяся в выражении несколько раз, выполняется в порядке расположения слева направо, то она называется левоассоциа-тивной; если выполняется справа налево, то операция правоассоциативная. В таблице эти свойства отображены стрелками влево и вправо. Некоторые операции, присутствующие в таблице, пока не обсуждались.

Операции

Операция деления: /

В языке Си символ / указывает на операцию деления. Величина, стоящая слева от этого знака, делится на величину, расположенную справа от этого знака. Например, в результате выполнения оператора

переменной l будет присвоено значение 63.0 . Над данными целого типа операция деления производится не так, как над данными с плавающей точкой: в первом случае результат будет целым числом, а во втором – числом с плавающей точкой. В языке Си принято правило, согласно которому дробная часть у результата деления целых чисел отбрасывается. Это действие называется “усечением”.

Рассмотрим пример, как выполняется усечение и чем деление целых чисел отличается от деления чисел с плавающей точкой:

Последний пример на использование смешанных типов, т.е. деление вещественного числа на целое. Язык Си менее строго подходит к подобным вопросам и позволяет выполнять такие операции.

Читайте также:  Радиаторы и охлаждение
!Смешения типов следует избегать!

Результат выполнения указанной программы:

В результате деления целых чисел происходит отсечение дробной части. Когда мы смешиваем целые числа и числа с плавающей точкой, результат будет таким же, как если бы оба операнда были числами с плавающей точкой. В этом случае перед делением целое преобразуется в число с плавающей точкой. Для того чтобы понять, что происходит в тех случаях, когда в одном операторе используется несколько операций, рассмотрим порядок выполнения операций. Совершенно очевидно, что изменение порядка выполнения действий может приводить к различным результатам. В языке Си каждой операции назначается уровень старшинства. Умножение и деление имеют более высокий уровень, чем сложение и вычитание, поэтому они выполняются первыми. Если же две операции имеют один и тот же уровень старшинства, они выполняются в том порядке, в котором присутствуют в операторе. Для большинства операций обычный порядок – слева направо. Операция = является исключением из этого правила. Многие программисты предпочитают представлять порядок вычислений с помощью дерева выражений. Например, выражение

будет выглядеть так:

Мы можем составить таблицу правил описанных нами операций. В дальнейшем мы приведем таблицу, где содержатся правила, относящиеся ко всем операциям языка Си.

Таблица 1.1. Операции в порядке уменьшения уровня старшинства
ОперацииПорядок вычисления
( )слева направо
– (унарный)слева направо
* /слева направо
+ – (вычитание)слева направо
=справа налево

Дополнительные операции

В языке Си имеется около сорока операций. Те операции , которые мы рассмотрели, являются наиболее общеупотребительными. Рассмотрим еще три операции , наиболее используемые программистами.

Операция деления по модулю: %

Эта операция используется в целочисленной арифметике. Ее результатом является остаток от деления целого числа, стоящего слева от знака операции, на число, расположенное справа от нее. Например, 63%5 , читается как 63 по модулю 5 , имеет значение 3 , т.к. 63=12*5+3 .

В результате выполнения оператора

переменной minutes будет присвоено значение остатка от деления time на 60 .

Операция увеличения: ++

Операция увеличения осуществляет следующее простое действие: она увеличивает значение своего операнда на единицу. Существуют две возможности использования данной операции: первая, когда символы ++ находятся слева от переменной ( операнда ), – “префиксная” форма, и вторая, когда символы ++ стоят справа от переменной, – “постфиксная” форма. Эти две формы указанной операции различаются между собой только тем, в какой момент осуществляется увеличение операнда . Префиксная форма изменяет значение операнда перед тем, как операнд используется. Постфиксная форма изменяет значение после того как операнд использовался.

переменной j сначала присваивается значение i , затем значение переменной i увеличивается на 1 .

Операция уменьшения: —

Каждой операции увеличения соответствует некоторая операция уменьшения, при этом вместо символов ++ мы используем — . Когда символы — находятся слева от операнда – “префиксная” форма операции уменьшения. Если символы — стоят справа от операнда – это “постфиксная” форма операции уменьшения.

В соответствии с принятым в языке Си порядком вычислений операции увеличения и уменьшения имеют очень высокий уровень старшинства. Только круглые скобки обладают более высоким приоритетом. Поэтому выражение a/b++ означает (a)/(b++) , а не (a/b)++ .

Большая Энциклопедия Нефти и Газа

Выполнение – операция – деление

Необходимость выполнения операции деления при определении отношения Д К / Д X является недостатком ЦДЛ с единичным приращением. Вычисление может выполняться как на ЭВМ, управляющей дисплеем, так и с помощью специальных аппаратных средств в генераторе векторов. В любом случае деление является дорогостоящим как в отношении затраты времени, так и в отношении технических средств. [16]

Метод выполнения операции деления , когда после получения отрицательного остатка к нему прибавляется делитель, называется методом деления с восстановлением остатка. Деление с восстановлением остатка требует в наиболее неблагоприятном случае затраты двух тактов для формирования каждого разряда частного: такта вычитания и такта сложения. [17]

Метод выполнения операции деления , когда при получении отрицательного остатка к нему прибавляется делитель, называется методом деления с восстановлением остатка. Деление с восстановлением остатка требует в наиболее неблагоприятном случае не менее двух тактов для формирования одного разряда частного: такта вычитания, такта сложения. [18]

Методика выполнения операции деления чисел в R-кодах аналогична методике выполнения операции деления двоичных чисел. [19]

Перед выполнением операции деления делимое передается в регистр RG3, делитель – в регистр RG1, а регистр RG2 гасится. Затем содержимое регистров RG2 и RC3 сдвигается на один разряд влево и вновь производится вычитание. [20]

Перед выполнением операции деления делитель находится в регистре А, делимое – в регистре В. [21]

Перед выполнением операции деления делимое передается в регистр RG3, делитель – в регистр RG1, а регистр RG2 гасится. Затем содержимое регистров RG2 и RG3 сдвигается на один разряд влево и вновь производится вычитание. [22]

При выполнении операции деления в машинах с формой представления чисел с плавающей точкой частное определяется как результат деления мантиссы делимого на мантиссу делителя, а порядок мантиссы частного получается в результате вычитания кода порядка делителя из кода порядка делимого. Деление мантисс реализуется аналогично делению чисел в машинах с фиксированной точкой. [23]

При выполнении операции деления с числами в системе с плавающей запятой мантиссу частного определяют методами деления, указанными выше. После получения мантиссы выполняется – нормализация. Порядок частного определяется как разность порядков делимого и делителя. [24]

При выполнении операции деления анализ результата для выработки его признака не производится. Код условия, полученный в ходе исполнения предыдущей команды, не меняется. [25]

При выполнении операций деления частное от деления числа, находящегося в ячейке с номером А1ИСП, на число, находящееся в ячейке с номером А2ИСП, записывается в ячейку с номером АЗИСП. Если делимое – нормализованное число, то результат получается нормализованным. [26]

При выполнении операции деления без восстановления остатка по схеме рис. 5.2 последовательность микроопераций по тактам, следующая. [27]

При выполнении операции деления чисел с, плавающей запятой сначала до – непосредственного деления выполняется, если это необходимо, нормализация мантисс. Далее по тем же алгоритмам, что и для чисел с фиксированной запятой, производится деление мантиссы делимого на мантиссу делителя и частное округляется в пределах заданной разрядности операндов. Затем находится порядок частного путем вычитания порядка делителя из порядка делимого и, наконец, нормализация результата. [28]

Вначале рассмотрим выполнение операции деления в машинах с фиксированной точкой. Для таких машин деление возможно при условии, что делимое по абсолютной величине меньше делителя. [29]

Второй вариант выполнения операции деления является более простым, так как не требует функционального преобразователя и обеспечивает возможность получения частного в более широком диапазоне изменения делителя. [30]

Выполнение операций умножения и деления в ЭВМ (стр. 1 из 4)

1. Выполнение операции умножения в ЭВМ

2. Умножение чисел, представленных в форме с плавающей запятой

3. Методы ускорения операции умножения

4. Матричный метод умножения

5. Выполнение операции деления в ЭВМ

5.1 Деление чисел с восстановлением остатков

5.2 Деление без восстановления остатков

6. Способы ускоренного деления

7. Деление чисел в машинах с плавающей запятой

Тема реферата «Выполнение операций умножения и деления в ЭВМ».

Цель работы – ознакомится с выполнением операций умножения и деления в ЭВМ, как с фиксированной, так и с плавающей запятой.

1. Выполнение операции умножения в ЭВМ

Операция умножения является наиболее частой после сложения. Умножение может выполняться суммированием сдвинутых на один или несколько разрядов частичных произведений, каждое из которых является результатом умножения множимого на соответствующий разряд (разряды) множителя.

При точном умножении двух чисел количество значащих цифр произведения может в пределе достичь двойного количества значащих цифр сомножителей. Еще сложнее возникает ситуация при умножении нескольких чисел. Поэтому в произведении только в отдельных случаях используют двойное количество разрядов.

Наиболее просто операция умножения выполняется в прямом коде. При этом на первом этапе определяется знак произведения путем сложения знаковых разрядов сомножителей по модулю 2, затем производится перемножение модулей сомножителей согласно двоичной таблице умножения. Результату присваивается полученный знак.

Так как умножение производится в двоичной системе счисления, частные произведения либо равны 0 (при умножении на 0), либо самому сомножителю (при умножении на 1), сдвинутому на соответствующее количество разрядов.

Произведение можно получить двумя путями:

1) сдвигом множимого на требуемое количество разрядов и прибавлением полученного очередного частичного произведения к ранее накопленной сумме частичных произведений;

2) сдвигом суммы ранее полученных частичных произведений на каждом шаге на 1 разряд и последующим прибавлением к сдвинутой сумме неподвижного множимого либо 0.

Читайте также:  Усилитель мощности для сду

Причем каждый из этих методов может различаться еще и тем, с младших или со старших разрядов начинается умножение.

1а) 0,1101 1б) 0,1101

Основываясь на вышеизложенном можно создать 4 основных метода машинного умножения в прямом коде:

1) умножение младшими разрядами множителя со сдвигом накапливаемой суммы частных произведений вправо;

2) умножение младшими разрядами множителя со сдвигом множимого влево;

3) умножение старшими разрядами множителя со сдвигом накапливаемой суммы частных произведений влево;

4) умножение старшими разрядами множителя со сдвигом множимого вправо;

Рассмотрим более детально каждую из схем умножения.

1) умножение младшими разрядами множителя со сдвигом накапливаемой суммы частных произведений вправо.

Алгоритм получения результата по данному методу может быть следующим:

1) содержимое сумматора обнуляется;

2) множимое умножается на очередной разряд множителя;

3) результат суммируется с содержимым сумматора;

4) содержимое сумматора сдвигается на 1 разряд вправо;

5) пункты 2, 3, 4 повторяются n-1 раз.

Заданы операнды А=0,0101; В=0,1011, выполнить операцию умножения.

Раз-рядНаимено-вание
п/пмн-ляоперации12345678
обнуление
1В1=1Ах В111
å11
®11
2В2=1Ах В211
å1111
®1111
3В3=0Ах В3
å1111
®1111
4В4=1Ах В411
å11111
®11111

2) умножение младшими разрядами множителя со сдвигом множимого влево.

Алгоритм получения результата по данному методу может быть следующим:

1) содержимое сумматора обнуляется;

2) множимое умножается на очередной разряд множителя;

3) результат суммируется с содержимым сумматора;

4) множимое сдвигается на 1 разряд влево;

5) пункты 2, 3, 4 повторяются n-1 раз.

Выполнение умножения по 3-му и 4-му способам умножения можно рассмотреть по аналогии к выше рассмотренным способам.

Анализ приведенных схем умножения показывает, что длительность процесса умножения по любой схеме составляет n циклов:

Однако длительность циклов в разных схемах одинакова. Так во второй и четвертой схемах τцсм и, учитывая, что τсмсдв, эти схемы позволяют ускорить процесс выполнения операции умножения за счет совмещения операции сложения частичных произведений и сдвигов множимого;

2) по количеству оборудования предпочтение следует отдать первой, а потом третьей схеме умножения.

Наиболее удобными для применения в ЭВМ являются 1 и 4 схемы умножения.

2. Умножение чисел, представленных в форме с плавающей запятой

Если операнды заданы в форме с плавающей запятой:

А=a2 ma и B=b2 mb , то их произведение С=АхВ и С=с2 mc

Алгоритм умножения нормализованных чисел состоит из следующих этапов:

1. Определение знака произведения путем сложения знаковых разрядов мантисс операндов по модулю 2.

2. Алгебраическое сложение порядков сомножителей в с целью определения порядка произведения.

3. Умножение модулей мантисс сомножителей по правилам умножения чисел с фиксированной запятой.

4. Нормализация и округление мантиссы результата. Следует учесть, что мантиссы сомножителей являются нормализованными числами. Поэтому денормализация мантиссы произведения возможна только на один разряд вправо. Она устраняется путем сдвига мантиссы на один разряд влево и вычитания 1 из порядка результата.

5. Присвоение знака результату.

Первые три операции могут выполняться одновременно, так как они независимы. Наличие операции определения знака произведения предполагает, что умножение мантисс выполняется в прямом коде.

При выполнении операции умножения в машине с плавающей запятой может получиться переполнение отрицательного порядка, которое будет интерпретировано как машинный нуль, если программой пользователя игнорируется признак исчезновения порядка. Может также возникнуть положительное переполнение порядка. В этом случае в первую очередь необходимо нормализовать мантиссу результата. Если и после этого переполнение порядка не устраняется, то машиной формируется признак переполнения порядка.

3. Методы ускорения операции умножения

Любое ускорение операции умножения даже ценой усложнения арифметических и логических схем позволяет существенно повысить производительность ЭВМ, т.к. примерно 70% машинного времени затрачивается на выполнение этой операции.

Известны способы ускорения умножения, направленные на сокращение общего количества и времени выполнения операций сложения, необходимых для образования произведения. Эти способы делятся на логические и аппаратные.

Под аппаратными понимают такие способы, которые требуют для своей реализации введения дополнительного оборудования в основные арифметические цепи, благодаря чему достигается совмещение во времени отдельных составных частей процесса умножения. Они подразделяются на способы 1-го и 2-го порядков. Для реализации способов 1-го порядка необходимо количество оборудования, пропорциональное числу разрядов машинного слова n. Для реализации способов 2-го порядка требуется объем оборудования, пропорциональный n 2 .

Под логическими понимают такие способы ускорения, при реализации которых сохраняется основная структура арифметических цепей умножителя, а ускорение достигается только за счет усложнения схемы управления.

Простейшим логическим способом является пропуск тактов суммирования в тех случаях, когда очередная цифра множителя равна 0.

В среднем, количество сложений при этом сокращается вдвое.

Можно сократить и среднее и максимальное количество суммирований при использовании как прямых, так и инверсных передач множимого в сумматор. Здесь учитывается то обстоятельство, что время умножения значительно сокращается, если при наличии в разрядах множителя нескольких нулей подряд производить его сдвиг сразу на несколько разрядов. Для этого видоизменяют код множителя с целью представления его с меньшим количеством разрядов, содержащих единицу. Например, группу единиц в множителе 011. ..110 можно преобразовать в группу 100. 0

Таким образом, в основе способа лежит представление числа как совокупности следующих последовательностей: нулей, единиц, нулей с изолированными единицами, единиц с изолированными нулями. При этом: два или более соседних нулей или соседних единиц рассматриваются как последовательность. Например, если умножение начинается с младших разрядов и множитель содержит последовательность единиц, то производится вычитание множимого с соответствующим (младшим) весом, а затем сдвиг через все эти единицы.

Десятичная система счисления

Что такое десятичная система счисления

В десятичной системе для представления чисел использует десять арабских цифр от 0 до 9, соответственно основанием десятичной системы счисления является число 10.

Историки, изучающие культуру древнего востока, в Индии обнаружили плиту с начертанием числа в позиционной десятичной системе. Возраст найденного артефакта составляет порядка 1,5 тысяч лет. Здесь же в древней Индии впервые используется ноль, как самостоятельная цифра.

Рис. 1. Индийские цифры, эволюция индийских цифр.

Развернутая форма представления десятичного числа

Важным понятием в позиционном подходе представления чисел является понятие разряда. Различают разряды единиц, десятков, сотен, тысяч и так далее. Любое десятичное число можно представить, в так называемом развернутом виде, когда число записывается в виде суммы разрядных слагаемых, представленных в виде произведения значащей цифры разряда и числа десять в степени соответствующего разряда.

Например, десятичное число 46758 в развернутом виде будет выглядеть следующим образом:

46758 = 4 * 10^4 + 6 * 10^3 + 7 * 10^2 + 5 * 10^1 + 8 * 10^0

46758 = 4 * 10000 + 6 * 1000 + 7 * 100 + 5 * 10 + 8 * 1

Прямой перевод числа из десятичной системы

Перевод целого десятичного числа в какую-либо систему счисления выполняется путем поочередного деления самого числового значения, а затем полученных частных на основание системы счисления, в которую производится перевод.

Например, для перевода десятичного числа в двоичную систему выполняют деление на два, в восьмеричную – на восемь, в шестнадцатеричную – на шестнадцать. В принципе, десятичное число можно перевести и в пятеричную и семеричную системы, выполнив деление на пять или семь.

Выполнив первый шаг деления на, например, два, остаток запоминают, а полученное частное снова делят на основание. Эту операцию выполняют до тех пор, пока последнее частное не будет меньше или равно делителю.

Записывать сформированное число в новой системе счисления необходимо начиная с итогового частного и затем друг за другом выписывая остатки от деления от последнего к первому.

Например, прямой перевод числа 27 из десятичной системы в двоичную выполняют так:

27 / 2 = 13 и остаток 1

13 / 2 = 6 и остаток 1

6 / 2 = 3 и остаток 0

3 / 2 = 1 и остаток 1

Таким образом, 27 в двоичном формате это число 11011.

Для перевода чисел в пределах можно пользоваться таблицей соответствия десятичных и двоичных чисел

Рис. 2. Таблица соответствия двоичных и десятичных чисел.

Обратный перевод числа в десятичную систему

Для перевода чисел в десятичную систему удобно пользоваться развернутой формой. При этом числовые значения записываются в виде суммы произведений цифр разрядов на основание текущей системы счисления в степени разряда.

Например, двоичное число 11011 можно представить так:

1 * 2^4 + 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 =27

Для упрощения вычислений удобно пользоваться таблицей степени двойки

Рис. 3. Степени двойки.

Что мы узнали?

В десятичной позиционной системе для представления числовых значений используются десять арабских цифр. Числа в такой системе можно представлять в развернутом виде. Перевод десятичных чисел в другую систему выполняется путем поочередного деления на основание новой системы счисления. Обратный перевод удобно выполнять с использованием развернутой формы записи числа.

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector