10783

Арифметические основы цифровой вычислительной техники

Лабораторная работа

Информатика, кибернетика и программирование

Арифметические основы цифровой вычислительной техники Методические указания для выполнения лабораторной работы по дисциплине Вычислительные машины системы и сети УДК681.3.07 Арифметические основы цифровой вычислительной техники: Метод. указания к лаб. р

Русский

2013-04-01

332.5 KB

56 чел.

Арифметические основы цифровой вычислительной техники

Методические указания для

выполнения лабораторной работы 

по дисциплине «Вычислительные машины, системы и сети»


УДК681.3.07

Арифметические основы цифровой вычислительной техники: Метод. указания к лаб. работе по дисциплине «Вычислительные машины, системы и сети»/ Воронеж. гос. ун. инж технол.; Сост. Е.А. Хромых, И.А. Козенко,. Воронеж, 2011. 36 с.

Указания разработаны в соответствии с требованиями ФГОС ВПО подготовки бакалавров по направлению 220400 – «Управление в технических системах», профиль подготовки «Управление и информатика в технических системах» и по направлению 220700 – «Автоматизация технологических процессов и производств», профиль подготовки «Автоматизация технологических процессов и производств (в пищевой и химической промышленности)». Они предназначены для закрепления теоретических знаний дисциплины цикла Б3. Методические указания посвящены представлению чисел в различных системах счисления и реализации арифметических операций над ними.

Составители доцент Е.А. ХРОМЫХ,

ассистент И.А. КОЗЕНКО.

Научный редактор профессор В.Ф. ЛЕБЕДЕВ

Рецензент профессор, д.т.н. Ю.А. ЧЕВЫЧЕЛОВ

Печатается по решению

редакционно-издательского совета

Воронежского государственного университета инженерных технологий

© Хромых Е.А.,

   Козенко И.А., 2011

© Воронежский                                государственный            

   университет инженерных технологий, 2011

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

1. КОДИРОВАНИЕ ЧИСЛОВОЙ ИНФОРМАЦИИ

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

Естественная форма представления – оформление информации в виде удобном и доступном любому пользователю в форме традиционных разговорных языков.

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

Кодированная форма представления информации – это запись ее в предельно формализованном виде, более удобном для использования в системах обработки и передачи информации.

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

Система кодирования – совокупность правил преобразования одних обозначений в другие с помощью кодов.

Код – правило отображения одного набора знаков в другой.

Код – набор знаков, определяющих множество образов отображения.

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

2. СИСТЕМЫ СЧИСЛЕНИЯ

Система счисления – совокупность символов и правил, позволяющих сформулировать и расшифровать любое число.

Число – совокупность цифр, знаков и разделителя, позволяющая описать любое количество (вес).

Минимально число может быть представлено только одной цифрой. В этом случае оно будет положительным и целым.

Цифра – единичный символ алфавита системы счисления, используемый для обозначения фиксированного количества (веса).

Знак – символ «+» или «-», определяющий явно положительность или отрицательность числа.

Отсутствие знака подразумевает его положительность, т.е. положительность числа по умолчанию.

Разделитель – символ «,» или «.», характеризующий форму представления количества, как целую (целочисленную) или дробную.

Рассмотренные компоненты числа представим как основные и дополнительные. Основные символы – цифры, дополнительные – знаки и разделитель.

Целое число – совокупность цифр без разделителя.

Дробное число – совокупность цифр с разделителем.

Выполним классификацию систем счисления по критерию «способ компоновки»:

Рис. 1. Классификация систем счисления

2.1. Непозиционная система счисления

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

Использование таких систем в настоящее время ограничено. Типичный пример: римская система счисления, практически закончившая свое существование параллельно с падением Рима. В настоящее время используется достаточно редко. Алфавит системы: I, V, X, L, C, D, M. Изменение весовых значений цифр алфавита определяется циклической последовательностью: умножить на 5, а затем удвоить, тогда таблица весовых значений имеет вид:

I

V

X

L

C

D

M

1

5

10

50

100

500

1000

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

  •  первое число – младшая цифра;
  •  второе число – сумма двух младших цифр;
  •  третье число – сумма трех младших цифр;
  •  четвертое число – разность старшей и младшей цифр;
  •  пятое число – старшая цифра;
  •  шестое число – сумма старшей и младшей цифр;
  •  седьмое число – сумма старшей и двух младших цифр;
  •  восьмое число – сумма старшей и трех младших цифр;
  •  девятое число 0 разность между младшей цифрой следующего разряда и младшей цифрой.

При этом под суммой понимается запись второй цифры справа от первой, а под разностью – запись вычитаемого слева от уменьшаемого. На основе выполненного сформируем правило представления любых чисел в римской системе, т.е. представление много разрядных чисел как последовательности записи каждого из разрядов, начиная со старшего слева направо. Например, число 672 представить в римском изображении: 600+70+2= =DCLXXII. Использовать рассмотренное правило возможно для записи любых положительных чисел в диапазоне от 1 до 3999. Для изображения чисел больших по весу используется над или подстрочный индекс.

Например: 5325=VMCCCXXV=VMCCCXXV.

Достоинства непозиционных систем:

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

Недостатки непозиционных систем:

  •  громоздкость записи;
  •  непонятность выполнения правил действий над числами, даже простейших арифметических.

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

2.2. Позиционные системы счисления

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

Представление чисел в позиционных системах может выполнятся в двух вариантах:

  •  компактном;
  •  развернутом.

Структура компактного представления:

где i – индекс, определяющий разряд конкретной цифры в ряду других составляющих число;

aiцифра алфавита системы счисления;

, - разделитель, определяющий начало целой и дробной части числа;

a0 – нулевой разряд единиц.

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

В качестве цифр алфавита любой позиционной системы используются арабские: 0, 1, 2, …, 9, а затем заглавные буквы латинского алфавита: А, В, С, …, если цифр более десяти. Отличие каждой позиционной системы от любой другой определяется количеством цифр в алфавите. Анализ записанных чисел не позволяет оценить их реальное значение до тех пор, пока не ясно, в какой системе счисления они записаны. Эта неопределенность ликвидируется записью справа внизу от числа индекса конкретной системы счисления. При отсутствии индекса числа считаются представленными в традиционной для человека десятичной системе счисления. Для характеристики конкретной системы счисления, помимо количества цифр, используют основание системы.

Основание системы счисления (Р) – величина, определяющая конкретную систему счисления по отношению к любой другой.

Основание определяет:

  •  количество цифр в алфавите;
  •  разность значений двух смежных разрядов.

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

,

где ai – цифра алфавита конкретной системы счисления;

P – основание системы счисления;

iпод или надстрочный индекс, определяющий номер конкретного разряда в ряду других.

Численное значение основания Р формируется для любой системы из двух первых цифр алфавита, записанных в обратном порядке, т.е. Р=10, т.к. первые 2 цифры в любой позиционной системе есть 0 и 1. Правило работает для основания, записанного в своей родной позиционной системе. Запись значения основания любой системы счисления в традиционной для человека десятичной системе оформляется соответствующим десятичным числом с указанием индекса. Например, основание восьмеричной системы может быть записано: Р=108=810. Исходя из изложенного можно сделать вывод, что в качестве основания системы счисления можно использовать любое значение Р в диапазоне: .

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

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

Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Знаки: «+», «-».

Знаки разделителя: «,», «.».

Первые 16 целых положительных чисел: 1, 2, 3, 4, 5, 6, 7, 8, 9,  10, 11, 12, 13, 1410.

Пятеричная система:

Алфавит: 0, 1, 2, 3, 4.

Знаки: «+», «-».

Знаки разделителя: «,», «.».

Первые 10 целых положительных чисел: 1, 2, 3, 4, 10, 11, 12, 13, 145.

Двенадцатиричная система:

Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В12

Знаки: «+», «-».

Знаки разделителя: «,», «.».

Первые 25 целых положительных чисел: 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1А, 1В, 2012.

Шестнадцатиричная система:

Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, E, F16.

Знаки: «+», «-».

Знаки разделителя: «,», «.».

Первые 35 целых положительных числа: 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 2216.

Двоичная система:

Алфавит: 0, 12.

Знаки: «+», «-».

Знаки разделителя: «,», «.».

Первые 21 целых положительных чисел: 0, 1, 10, 11, 100, 101, 110, 11, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001, 10010, 10011, 101002.

3. ПРЕОБРАЗОВАНИЕ ЧИСЕЛ ПОЗИЦИОННЫХ СИСТЕМ ИЗ КОМПАКТНОЙ В РАЗВЕРНУТУЮ

Любое число любой позиционной системы может быть преобразовано из упрощенной (компактной) формы записи в развернутую (полную). Методика:

  •  указать над каждой цифрой числа относительно разделителя ее разряд, начиная с нулевого, с последовательным увеличением на единицу со знаком «+» влево, со знаком «-» вправо;
  •  определить в какой системе счисления представлено число и выбрать форму записи полинома, «родную» или десятичную;
  •  сформировать значение полинома, начиная со старшего разряда.

Пример:

1. число в десятичной системе 10265,310 представить в виде полинома в «родной» (десятичной) системе.

2. число 10265,38 представить в виде полиномов в «родной» и десятичной системах.

3. число 102,2213 представить в виде полиномов в «родной» и десятичной системах.

4. ВЫПОЛНЕНИЕ ПРОСТЕЙШИХ ДЕЙСТВИЙ НАД ЧИСЛАМИ

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

4.1. Сложение чисел позиционных систем

Сложение – нахождение суммы значений элементов, участвующих в операции, т.е. операндов или слагаемых.

Количество слагаемых для одного действия должно быть не менее двух. Символ сложения – знак «+». Методика выполнения сложения:

  •  записать слагаемые одно под другим поразрядно, дополняя недостающие разряду нулями;
  •  выполнять операцию суммирования поразрядно, начиная с младшего разряда;
  •  если результат (сумма цифр) меньше основания системы, то соответствующая цифра записывается в этот разряд;
  •  если результат равен основанию системы, то в складываемом разряде записывается 0, а 1 переносится в левый, старший разряд;
  •  если результат больше основания системы, то в складываемом разряде записывается цифра превышения основания, а единица переносится в ближайший левый разряд.

Примеры сложения одноразрядных чисел:

  1.  47 + 17:                 
    1.  47 + 37:                
    2.  47 + 57:                 

4.2. Вычитания чисел позиционных систем

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

Вычитание – нахождение разности между уменьшаемым и вычитаемым.

Количество операндов при вычитании всегда равно 2. Методика выполнения, для варианта с уменьшаемым, большим вычитаемого:

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

Примеры вычитания:

  1.  68 – 28 :      
  2.  108 – 28 :   
  3.  10018 – 28:   

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

4.3. Операции умножения (деления)

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

4.4. Выполнение арифметических действий в двоичной системе

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

Таблица 1.

Арифметические операции двоичной системы счисления

Сложение

Вычитание

Умножение

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

Пример:

             110110,112

                      101,12

         00011011011

         00110110110

         00000000000

         11011011000

       100101101,0012

Методика умножения с последовательным сложением:

     110110,112

             101,12

    

 

 100101101,0012

Анализ выполнения примера показывает, что второй метод эффективнее и надежнее. Его применяют в ЭВМ.

В ПК используют двоичную систему потому, что она имеет ряд преимуществ перед другими системами:

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

Недостаток двоичной системы – быстрый рост числа разрядов, необходимых для записи чисел.

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

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

4.4. Выполнение деления

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

5. ПЕРЕВОД ЧИСЕЛ ИЗ ОДНОЙ СИСТЕМЫ СЧИСЛЕНИЯ В ДРУГУЮ

Человечество в процессе своего развития использовало различные позиционные системы счисления: пятеричную, десятичную, двенадцатеричную. Создание вычислительной техники привело к необходимости использования систем счисления кратных 2n: двоичной, восьмеричной, шестнадцатеричной. Поэтому возникла необходимость в создании правил перехода чисел из любой позиционной системы в любую другую.

Назовем старую систему, т.е. систему из которой выполняется перевод Р-й, а систему в которую он выполняется - Q-й. .

Общая методика:

  •  представить Р-е число двумя операндами, т.е. в виде целой и дробной части (правильной дроби);
  •  произвести перевод каждого из операндов в новую Q-ю систему по конкретным правилам;
  •  сформировать представление числа в новой Q-й системе, записав через разделитель полученное изображение целой и дробной части.

Методика преобразования целых чисел (целочисленного операнда):

  •  разделить на цело Р-е число на основание новой Q-й системы, записанное в Р-м изображении, результат деления: целое число (частное) и остаток;
  •  зафиксировать остаток и представить его цифрой новой системы;
  •  проанализировать частное, если оно больше или равно основания системы, то повторить предыдущие пункты, используя частное, как целое число, подлежащее переводу; если частное меньше основания системы, то деление прекратить;
  •  сформировать результат перевода, как число, старшим разрядом  которого является последнее из  получаемых частных, а следующие остатки дописать в порядке, обратном получению в виде цифр новой Q-й системы.

Универсальное правило перевода правильных дробей:

  •  умножить переводимую дробь на основание новой системы Q, записанное в старой Р-й системе;
  •  зафиксировать целую часть полученного результата и представить ее цифрой новой системы; проанализировать оставшуюся дробь и если она равна нулю, то прекратить вычисление, в противном случае повторить предыдущие пункты, не переведется нацело, либо до достижения заданной точности (количества зафиксированных цифр;
  •  сформулировать полученное значение в новой Q-й системе структуры: 0,n1n2nm, где используются в качестве разрядов после разделителя зафиксированные цифры новой системы счисления (ni) в порядке их получения, т.е. n1 – результат первого вычисления, n2 – второго и т.д.

Универсальность методики компенсируется одним недостатком, т.е. неудобством для человека вычислений в любых системах, кроме десятичной. Поэтому на практике универсальным методом пользуются только для перевода чисел из системы с основанием Р=10 в Q-ю систему с основанием . Для обратного перевода чисел из системы  в систему Q=10 используют простейший частный случай с методикой:

  •  представить переводимое число в виде полинома в новом десятичном изображении;
  •  свернуть полученный полином.

Примеры:

  1.  47,410 перевести в двоичную систему.

47,410=4710+0,410

4710     210

4610    2310     210

 110    2210       1110          210

            110      1010      510        210

                       110      410        210        210

                                  110        210        110

                                               0

4710=101111

0,410

   210

0,810

   210

1,610

   210

1,210

   210

0,810

   210

1,610

  1.  Преобразовать 47,410 в восьмеричную систему.

47,410=4710+0,410

4710      810

4010      510                              4710=578

 710

0,410

   810

3,210

   810

1,610                                      

   810

4,810

   810

6,410

Анализ рассмотренных примеров позволяет сделать выводы:

  •  чем меньше основание новой системы счисления, тем больше разрядов в изображении числа;
  •  перевод чисел из десятичной системы в двоичную требует выполнения значительного количества действий;
  •  чем больше основание системы по отношению к десяти, тем менее удобно оно для человека.

Пример: 47,410 преобразовать в шестнадцатеричную систему.

47,410=4710+0,410

4710      1610

3210        210                        4710=2F16

1510

0,410

 1610

6,410                                         

 1610

6,410  

Далее осуществим обратный перевод, т.е. из системы с  в систему Q=10:

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

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

Промежуточная – система счисления, основание которой кратно 2 в целой положительной степени (n).

Следовательно, основания любой промежуточной системы вычисляются зависимостью: Р=2n, т.е. Р=4, Р=8, Р=16, Р=32 и т.д.

В настоящее время широко используются две промежуточные системы: восьмеричная (Р=8) и шестнадцатеричная (Р=16). Для рассмотрения методики представления чисел в промежуточных системах выполним таблицу записи чисел (целых, положительных) в некоторых из них:

10ая

8ая

5ая

2ая

16ая

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

0

1

2

3

4

5

6

7

10

11

12

13

14

15

16

17

20

0

1

2

3

4

10

11

12

13

14

20

21

22

23

24

30

31

0

1

10

11

100

101

110

111

1000

1001

1010

1011

1100

1101

1110

1111

10000

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

10

6. ПРЕДСТАВЛЕНИЕ В КОМПЬЮТЕРЕ ЦЕЛЫХ ЧИСЕЛ

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

Целые числа без знака обычно занимают в памяти один или два байта и принимают в однобайтовом формате значения от 000000002 до 111111112 , а в двухбайтовом формате – от 00000000 000000002 до 11111111 111111112.

Таблица 2.

Диапазоны значений целых чисел без знака

Формат числа в байтах

Диапазон

Запись с порядком

Обычная запись

1

0 ... 28–1

0 ... 255

2

0 ... 216–1

0 ... 65535

Например:

число 7210  в однобайтовом формате 10010002 :

Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак “плюс” кодируется нулем, а “минус” – единицей.

Таблица 2.

Диапазоны значений целых чисел со знака

Формат числа в байтах

Диапазон

Запись с порядком

Обычная запись

1

–27 ... 27–1

–128 ... 127

2

–215 ... 215–1

–32768 ... 32767

4

–231 ... 231–1

–2147483648 ... 2147483647

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

В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код.

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

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

Например:

110=12

12710=11111112

0

0

0

0

0

0

0

1

0

1

1

1

1

1

1

1

Знак числа “-”

Знак числа +

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

  1.  Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа – двоичный код его абсолютной величины.

-12

-1272

1

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

Знак числа “-”

Знак числа +

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

-12

-1272

1

1

1

1

1

1

1

0

1

0

0

0

0

0

0

0

Знак числа “-”

Знак числа +

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

-12

-1272

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

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

6.1. Выполнение в ПК арифметических действий над целыми числами

Сложение и вычитание

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

При сложении обратных кодов чисел А и В имеют место четыре основных и два особых случая:

  1.  А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.

Десятичная запись

Двоичная запись

+

3

+

0

0

0

0

0

0

1

1

7

0

0

0

0

0

1

1

1

10

0

0

0

0

1

0

1

0

Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А.  

Десятичная запись

Двоичная запись

+

3

+

0

0

0

0

0

0

1

1

-10

1

1

1

1

0

1

0

1 (обр. код -10)

-7

1

1

1

1

1

0

0

0 (обр. код -7)

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А.

Десятичная запись

Двоичная запись

+

10

+

0

0

0

0

1

0

1

0

-3

1

1

1

1

1

1

0

0 (обр. код -3)

7

0

0

0

0

0

1

1

1

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные.

Десятичная запись

Двоичная запись

+

-3

+

1

1

1

1

1

1

0

0 (обр. код -3)

-7

1

1

1

1

1

0

0

0 (обр. код -7)

-10

1

1

1

1

0

1

0

1 (обр. код -10)

Полученный первоначально неправильный результат (обратный код числа –1110 вместо обратного кода числа –1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы.

При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = –1010.

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

  1.  А и В положительные, сумма А+В больше, либо равна 2n–1, где n – количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 = 128).

 

Десятичная запись

Двоичная запись

+

65

+

0

1

0

0

0

0

0

1

97

0

1

1

0

0

0

0

1

162

1

0

1

0

0

0

1

0 (переполнение)

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

  1.  А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n–1.

 

Десятичная запись

Двоичная запись

+

-63

+

1

1

0

0

0

0

0

0 (обр. код -63)

-95

1

0

1

0

0

0

0

0 (обр. код -95)

158

0

1

1

0

0

0

0

0 (переполнение)

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

Все эти случаи имеют место и при сложении дополнительных кодов чисел:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А.

Десятичная запись

Двоичная запись

+

3

+

0

0

0

0

0

0

1

1

-10

1

1

1

1

0

1

1

0 (доп. код -10)

-7

1

1

1

1

1

0

0

1 (доп. код -7)

 

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А.

Десятичная запись

Двоичная запись

+

10

+

0

0

0

0

1

0

1

0

-3

1

1

1

1

1

1

0

1 (доп. код -3)

7

0

0

0

0

0

1

1

1 (перенос

отбрасывается)

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

  1.  А и В отрицательные.

Десятичная запись

Двоичная запись

+

-3

+

1

1

1

1

1

1

0

1 (доп. код -3)

-7

1

1

1

1

1

0

0

1 (доп. код -7)

-10

1

1

1

1

0

1

1

0 (доп. код -10)

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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

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

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

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

6.2. Представление в ПК вещественных чисел

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

При их написании вместо запятой принято писать точку. Так, например, число 5 — целое, а числа 5.1 и 5.0 — вещественные.

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

1.25*100 = 0.125*101 = 0.0125*102 = ... ,

или так:

12.5*10–1 = 125.0*10–2 = 1250.0*10–3 = ... .

Любое число N в системе счисления с основанием q можно записать в виде N = M * qp, где M называется мантиссой числа, а p — порядком. Такой способ записи чисел называется представлением с плавающей точкой.

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

Мантисса должна быть правильной дробью, первая цифра которой отлична от нуля: M из [0.1, 1).

Такое, наиболее выгодное для компьютера, представление вещественных чисел называется нормализованным.

Мантиссу и порядок q-ичного числа принято записывать в системе с основанием q, а само основание — в десятичной системе. 

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

Десятичная система                 Двоичная система

753.15 = 0.75315*103;          -101.01 = -0.10101*211 (порядок 112 = 310)

-0.000034 = -0.34*10-4;         -0.000011 = 0.11*2-100 (порядок -1002 = -410)

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

В качестве примера приведем характеристики форматов вещественных чисел, используемых IBM-совместимыми персональными компьютерами:

Форматы вещественных чисел

Размер в байтах

Примерный диапазон абсолютных значений

Количество значащих десятичных цифр

Одинарный

4

10–45 … 1038

7 или 8

Вещественный

6

10–39 … 1038

11 или 12

Двойной

8

10–324 … 10308

15 или 16

Расширенный

10

10–4932 … 104932

19 или 20

Из этой таблицы видно, что форма представления чисел с плавающей точкой позволяет записывать числа с высокой точностью и из весьма широкого диапазона.

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

Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа.

Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.

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

1. Число 6.2510 = 110.012 = 0,11001•211 :

2. Число –0.12510 = –0.0012 = –0.1*2–10 (отрицательный порядок записан в дополнительном коде):

6.4. Выполнение в ПК арифметических действий над нормализованными числами

К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.

Сложение и вычитание

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

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

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

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

Сложить двоичные нормализованные числа 0.10111•2–1 и 0.11011*210. Разность порядков слагаемых здесь равна трем, поэтому перед сложением мантисса первого числа сдвигается на три разряда вправо:

Выполнить вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:

Результат получился не нормализованным, поэтому его мантисса сдвигается влево на два разряда с соответствующим уменьшением порядка на две единицы: 0.1101*20.

Умножение

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

Выполнить умножение двоичных нормализованных чисел:

(0.11101*2101)*(0.1001*211) = (0.11101*0.1001)* 2(101+11) = 0.100000101*21000.

Деление

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

Выполнить деление двоичных нормализованных чисел:

0.1111*2100 : 0.101*211 = (0.1111 : 0.101) * 2(100–11) = 1.1*21 = 0.11•210.

Использование представления чисел с плавающей точкой существенно усложняет схему арифметико-логического устройства.

7. ПЕРЕЧЕНЬ ЗаданиЙ:

  1.  Преобразовать двоичное число в восьмеричное.

(а) 010 110 111 101 011 111

(b)001 101 110 100 000 010

(c) 101 111 000 110 100 001

(d) 110 011 001 100 101 000

(e) 010 101 111 011 101 110

(f)111 101 001 010 100 110

  1.  Преобразовать двоичное число в шестнадцатеричное.

(а) 1010 1111 0001 1011 0101

(b) 0101 1011 1100 0011 1010

(c) 1101 1001 1010 1011 0100

(d) 1110 1011 1000 0011 1010

(e) 0111 1011 1100 1110 1101

(f)1111 0110 1010 0001 1011

  1.  Преобразовать восьмеричное число в двоичное.
  2.  135726; b) 240536; c) 713265; d) 346517; e) 670341; f) 532746;
  3.  Преобразовать шестнадцатеричное число в двоичное.    

 a) 4BC9A; b) F8DB5; c) EC3B6; d) D2AB4; e) AC87B; f) B5FA6;

  1.  Преобразовать двоичное число в десятичное.

a) 10111001; b) 01110011; c) 11001101; d) 11011001; e) 10110011; f) 01100111;

  1.  Преобразовать восьмеричное число в десятичное.  

a) 7361; b) 2654; c) 3752; d) 5641; e) 3746; f) 6453;

  1.  Преобразовать шестнадцатеричное число в десятичное.

a) 3FD; b) AC7; c) BD9; d) CF6; d) DE3; e) ED7;

  1.  Преобразовать десятичное число в двоичное.

a) 745; b) 547; c) 831; d) 655; e) 641; f) 588;

  1.  Преобразовать десятичное число в восьмеричное.

a) 1021; b) 1237; c) 1481; d) 1356; e) 1146; f) 1579;

  1.  Преобразовать десятичное число в шестнадцатеричное.

a) 1021; b) 1237; c) 1481; d) 1356; e) 1146; f) 1579;

  1.   Выполнить сложение многоразрядных двоичных чисел.

а) 10101011; 01111100; b) 01110001; 10101000; c) 11110001; 01010001; d) 00111101; 11110011; e) 10001100; 01100111; f) 11011001; 01000111;

  1.  Получить дополнительный код числа.

а) 01111100; b) 10101000; c) 01010001;

d) 11110011; e) 01100111; f) 01000111;

  1.   Выполнить вычитание чисел двумя способами: A-B и A+(-B).

а) 101000; 011001; b) 110010; 100011; c) 110000; 011110; d) 101101; 010100; e) 110111; 011110; f) 110111; 011001;

14. Реализовать на одном из языков программирования (с++, pasacal и др.) алгоритм перевода числа из системы счисления Q в систему счисления P.

№ варианта

Q

P

1

3

16

2

5

16

3

6

16

4

7

16

5

8

16

6

9

16

7

3

8

8

5

8

9

6

8

10

7

8

11

9

8

12

16

8

13

5

3

14

6

3

15

7

3

16

8

3

17

9

3

18

16

3

19

3

5

20

6

5

21

7

5

22

8

5

23

9

5

24

16

5

8. Состав отчета

  1.  задание;
  2.  код программы с комментариями;
  3.  блок-схема программы;
  4.  результаты;
  5.  выводы.

9. Библиографический список

  1.  Архитектура ЭВМ и систем [Текст]: учебное пособие / Геннадий Владимирович Абрамов [и др.] ; Воронеж. гос. технол. акад. - Воронеж, 2006. - 155с.
  2.  Бройдо, В.Л. Архитектура ЭВМ и систем [Текст]: учебник для студ.вузов (гриф МО) / В. Л. Бройдо, О. П. Ильина. - 2-е изд. - СПб. : Питер, 2009. - 720с.
  3.  Бройдо, В.Л. Вычислительные системы, сети и телекоммуникации [Текст]: учебник для студ.вузов (гриф МО) / В. Л. Бройдо, О. П. Ильина. - 4-е изд. – СПб. : Питер, 2011. – 560 с.
  4.  Мелехин, В. Ф. Вычислительные машины, системы и сети [Текст]: учебник для студ. вузов обуч. по спец. "Автоматизация и управление" (гриф УМО) / В. Ф. Мелехин, Е. Г. Павловский. - 2-е изд., стер. - М.: Академия, 2007. – 560 с.
  5.  Олифер, В.Г. Сетевые операционные системы [Текст]: учебное пособие для студ. вузов (гриф МО) / В. Г. Олифер, Н. А. Олифер. - СПб. : Питер, 2006. - 539с.
  6.  Яремчук, С. Защита вашего компьютера [Текст] / С. Яремчук. - СПб. : Питер, 2008. - 288 с.


ДЛЯ ЗАМЕТОК


Учебное издание 

АРИФМЕТИЧЕСКИЕ ОСНОВЫ ЦИФРОВОЙ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

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

по дисциплине «Вычислительные машины, системы и сети»

Для бакалавров направления 220400, 220700

Составители ХРОМЫХ Елена Алексеевна

                          КОЗЕНКО Иван Александрович

Редактор Н.А. Сотникова

Корректор Н.В. Бургонова

Компьютерный набор и вёрстка И.А. Козенко

Подписано в печать

Формат 60х84 1/16. Бумага офсетная. Гарнитура Таймс. Ризография.

             Усл. печ. л. 2,2. Уч.-изд. л. 2,0. Тираж 200 экз. Заказ         . C-

Воронежский государственный университет инженерных технологий (ВГУИТ)

Участок оперативной полиграфии ВГУИТ

Адрес академии и участка оперативной полиграфии:

394000 Воронеж, пр. Революции, 19

Непозиционные

Позиционные

Системы счисления

«способ компоновки»


 

А также другие работы, которые могут Вас заинтересовать

54204. Додавання та віднімання чисел частинами. Задачі на різницеве порівняння 60 KB
  Правильно це Буратіно. Відправляючись в країну дурнів Буратіно потрапляє в казковий математичний ліс. Ось і вибрався Буратіно із лісу знайшов стежку і вона привела його до будинку Мальвіни. Мальвіна запросила Буратіно в гості напоїла чаєм і вирішила перевірити його знання з математики.
54205. Множення чисел 1 і 0. Множення на 1 і 0. Задачі на дві і три дії 36 KB
  Множення чисел 1 і 0. Множення на 1 і 0.Ознайомити учнів із випадками множення коли одним із множників є число 1 чи 0. Що таке множення Як називаються числа при множенні Що показує перший другий множник 2.
54206. Перетин прямих. Точка. Відрізки та їх порівняння. Приклади на додавання 108.5 KB
  Які саме У кожній країні на кожному кроці зустрічаються фігури такі як на дошці додаток 1. Будинки стоять вздовж прямої з обох боків додаток 2. Курка пробігла розсипала зернята додаток 3. А якщо розглянути лінію від точки до точки то бачимо що вона має початок та кінець – це відрізок додаток 4.
54207. Задачі на знаходження суми і остачі 1.89 MB
  Скільки прапорців залишилось у дівчинки 2. Скільки горобців залишилось 3. Скільки пасажирів стало в автобусі 4. Скільки літрів молока залишилось в бідоні 5.
54208. Основные черты и признаки скотоводческих культур и их исторические судьбы 15.06 KB
  Скотоводство — доминирующая отрасль животноводства, специализирующаяся на разведении крупного рогатого скота для получения молока, говядины, кожевенного сырья, а также в качестве тягловой силы. Скотоводство практикуется во всём мире и играет важную роль в экономике многих стран.
54210. Упражнения и задачи на применение таблиц сложения и вычитания в пределах 10 1.52 MB
  Зима. Да дети к нам в гости пришла Зима. Скажите сколько букв в слове зима 1. 22=4 31=4 13=4 Зима нас решила провести по зимнему лесу.
54211. Математична гра-казка. Подорож Петрика пяточкіна по країны числяндії 248 KB
  Хід гри – казки Учитель. Він пише учитель дістає листа з конверта підписаного за всіма правилами й адресованого учням 2А класу і зачитує: Любі другокласники Ви вже не новачки в школі. Учитель.
54212. Дослідження таблиці додавання. Різні прийоми додавання одноцифрових чисел. Закріплення додавання багатоцифрових чисел з переходом через розряд та складання і розвязування задач за схемами 78 KB
  Продовжувати роботу над дослідженням таблиці додавання. Ознайомлення з властивостями додавання числа 9 і до числа 9. Закріпити вміння додавати багатоцифрові числа з переходом через розряд. Вдосконалювати вміння складати і розв’язувати задачі до схеми; розв’язувати рівняння.