Информация о готовой работе

Бесплатная студенческая работ № 3709

ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 1

2ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ

2Системы счисления и способы перевода чисел 2из одной системы в другую.

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

A = 7+ 0 a 4m-1 0 a 4m-2 0 ... a 4k 0 ... a 40 0 , a 4-1 0 ... a 4-l 0 (I)

Позиции, пронумерованные индексами k (-l < k < m-1) называ- ются разрядами числа. Сумма m+l соответствует количеству разрядов числа (m - число разрядов целой части числа, l - дробной части). Каждая цифра a 4k 0 в записываемой последовательности может при- нимать одно из N возможных значений. Количество различных цифр (N), используемых для изображения чисел в позиционной системе счисления, называется основанием системы счисления. Основание N указывает, во сколько раз единица k+1 -го разряда больше единицы k -го разряда, а цифра a 4k 0 соответствует количеству единиц k -го разряда, содержащихся в числе. Таким образом, число может быть представлено в виде суммы:

(A) 4N 0 = 7+ 0(a 4m-1 0N 5m-1 0 + a 4m-2 0N 5m-2 0 +...+ a 40 0 + a 4-1 0N 5-1 0 +...+ a 4-l 0N 5-l 0) (II) Основание позиционной системы счисления определяет ее назва- ние. В вычислительной технике применяются двоичная, восьмеричная, десятичная и шестнадцатеричная системы. В дальнейшем, чтобы явно указать используемую систему счисления, будем заключать число в скобки и в индексе указывать основание системы счисления. - 2 -

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

(A) 42 0 = 7+ 0(a 4m-1 02 5m-1 0 + a 4m-2 02 5m-2 0 + ... + a 40 0 + a 4-1 02 5-1 0 + ... + a 4-l 02 5-l 0)

Например, двоичное число

(10101,101) 42 0 = 1*2 54 0+0*2 53 0+1*2 52 0+0*2+1+1*2 5-1 0+0*2 5-2 0+1*2 5-3 0 = (21,625) 410

В восьмеричной системе счисления для записи чисел использу- ется восемь цифр (0,1,2,3,4,5,6,7), а в шестнадцатеричной - шест- надцать (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

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


Двоичные ж Восьмеричные ж Десятичные ж Шестнадцате- числа ж числа ж числа ж ричные числа


0,0001 ж 0,04 ж 0,0625 ж 0,1 0,001 ж 0,1 ж 0,125 ж 0,2 0,01 ж 0,2 ж 0,25 ж 0,4 0,1 ж 0,4 ж 0,5 ж 0.8 1 ж 1 ж 1 ж 1 10 ж 2 ж 2 ж 2 11 ж 3 ж 3 ж 3 100 ж 4 ж 4 ж 4 101 ж 5 ж 5 ж 5 110 ж 6 ж 6 ж 6 111 ж 7 ж 7 ж 7 1000 ж 10 ж 8 ж 8 1001 ж 11 ж 9 ж 9 1010 ж 12 ж 10 ж A 1011 ж 13 ж 11 ж B 1100 ж 14 ж 12 ж C 1101 ж 15 ж 13 ж D 1110 ж 16 ж 14 ж E 1111 ж 17 ж 15 ж F 10000 ж 20 ж 16 ж 10


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

- 3 -

Таблица сложения:

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10

Таблица умножения:

0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1

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

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

Пример перевода числа 30,6 из десятичной системы в двоичную:

1Перевод целой части Перевод дробной части

Последовательное Остатки Целые части - Последовательное деление разряды пере- умножение веденной дроби

0, 6 X 2 30 / 2 0


15 / 2 1


7 / 2 1 ----мжж ж X 3 / 2 1 ---мжжж ж 2 1 / 2 1 --мжжжж ж


0 жжжжж ж---- 0, 4 жжжжж жж X жжжжж жж 2 жжжжж жж


жжжжж жж--- 0, 8 жжжжж жжж X жжжжж жжж 2 жжжжж жжж


жжжжж жжж-- 1, 6 жжжжж жжжж Результат: 11110,1001

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

Пример перевода числа 111110,01 из двоичной системы в десятичную.

1Перевод целой части Перевод дробной части

0, 0100 X 1010 _111110| _1010 .


_1010 . |110


1011 ж ж X _1010 . ж ж 1010 10


жж ж---- 101, 0000 жж жж Результат: 62,25

- 5 -

Примечание 1: 1010 - основание десятичной системы счисления в двоичной записи. Примечание 2: десятичные эквиваленты разрядов искомого числа находим по таблице.

При переводе чисел из любой системы счисления в десятичную удобнее пользоваться непосредственно формулой (II):

(775) 48 0 = 7*8 52 0 + 7*8 + 5 = (509) 410

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

(983,65) 410 0 = (1001 1000 0011, 0110 0101) 42-10

При записи чисел в кодах ASCII цифрам от 0 до 9 поставлены в соответствие восьмиразрядные двоичные коды от 00110000 до 00111001. ЭВМ, предназначенные для обработки экономической информации, например IBM AT, позволяют производить арифметические операции в десятичной системе счисления над числами, представленными в дво- ично-десятичных кодах и кодах ASCII.

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

(376,51) 48 0 = (011 111 110, 101 001) 42

(1AF8) 416 0 = (0001 1010 1111 1000) 42

ПЕРВЫЙ СЕМЕСТР

ЛЕКЦИЯ N 2

2ОСНОВЫ МАШИННОЙ АРИФМЕТИКИ

2Формы представления чисел в ЭВМ.

Разряд двоичного числа представляется в ЭВМ некоторым техни- ческим устройством, например, триггером, двум различным состояни- ям которого приписываются значения 0 и 1. Группа таких устройств, предназначенная для представления в машине многоразрядного числа, называется регистром.

Структура двоичного регистра, представляющего в машине n-разрядное слово: ----T---T---T---T---м жn-1жn-2ж...ж 1 ж 0 ж L---+---+---+---+----

Отдельные запоминающие элементы пронумерованы от 0 до n-1. Количество разрядов регистра определяет точность представления чисел. Путем соответствующего увеличения числа разрядов регистра может быть получена любая точность вычислений, однако это сопря- жено с увеличением количества аппаратуры (в лучшем случае зависи- мость линейная, в худшем - квадратичная).

В ЭВМ применяются две основные формы представления чисел: полулогарифмическая с плавающей запятой и естественная с фиксиро- ванным положением запятой. При представлении чисел с фиксированной запятой положение запятой закрепляется в определенном месте относительно разрядов числа и сохраняется неизменным для всех чисел, изображаемых в данной разрядной сетке. Обычно запятая фиксируется перед старшим разрядом или после младшего. В первом случае в разрядной сетке могут быть представлены только числа, которые по модулю меньше 1, во втором - только целые числа. Для кодирования знака числа используется старший ("знако- вый") разряд. При выполнении арифметических действий над правильными дро- бями могут получаться двоичные числа, по абсолютной величине больше или равные единице, что называется 1 переполнением разрядной 1сетки. 0 Для исключения возможности переполнения приходится масшта- бировать величины, участвующие в вычислениях.

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

2 5-(n-1) 0 7, 0 ж(A)ж 7 , 0 1 - 2 5-(n-1) 0 .

. - 2 -

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

Диапазон представления целых двоичных чисел со знаком в n-разрядной сетке:

0 7, 0 ж(A)ж 7 , 0 2 5n-1 0 - 1 .

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

A = 7+ 0m * N 5+p 0 ,

где N - основание системы счисления, p - целое число, называемое порядком числа A, m - мантисса числа A (жmж<1).

Так как в ЭВМ применяется двоичная система счисления, то

A = 7+ 0m * 2 5+p 0 ,.

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

Двоичное число называется нормализованным, если его мантисса удовлетворяет неравенству

1/2 7, 0 ж m ж 7 0< 1 .

Неравенство показывает, что двоичное число является нормали- зованным, если в старшем разряде мантиссы стоит единица. Напри- мер, число 0,110100*10 5100 0 - нормализованное, а 0,001101*10 5110 0 - ненормализованное. Ситуация, когда в процессе вычислений получено число с жmж 7. 01 называется переполнением разрядной сетки. Нормализованное представление чисел позволяет сохранить в разрядной сетке большее количество значащих цифр и, следователь- но, повышает точность вычислений. Однако современные ЭВМ позволя- ют, при необходимости, выполнять операции также и над ненормали- зованными числами. . - 3 -

Диапазон представления нормализованных двоичных чисел, взя- тых по абсолютному значению, удовлетворяет неравенству:

2 5-1 0* 5 02 5-(2k-1) 7 , 0 ж(A)ж 7, 0 (1 5 0- 5 02 5-l 0) 5 0* 5 02 52k-1 0 ,

где l - число разрядов мантиссы; k - число разрядов порядка; 2 5-1 0 - наименьшее значение нормализованной мантиссы; 1-2 5-l 0 - наибольшее значение нормализованной мантиссы.

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

2Представление отрицательных чисел в ЭВМ.

Для кодирования знака двоичного числа используется старший ("знаковый") разряд (ноль соответствует плюсу, единица - минусу). Такая форма представления числа называется 2прямым кодом 0. Формула для образования прямого кода правильной дроби имеет вид: 7( 72 0 A, если A 7. 00, [A] 4пр 0 = 7 * 72 0 1-A, если A<0. 79 Примеры: A = 0,110111 --> [A] 4пр 0 = 0,110111 A = -0,110111 --> [A] 4пр 0 = 1 - (-0,110111) = 1,110111

Прямой код целого числа получается по формуле: 7( 72 0 5 0 A, если A 7. 00, [A] 4пр 0 = 7 * 72 010 5n-1 0- 5 0A, если A<0. 79 где 10 - число 2 в двоичной системе счисления, n - количество позиций в разрядной сетке.

Например, при n=8 A = 110111 --> [A] 4пр 0 = 00110111 A = -110111 --> [A] 4пр 0 = 10000000 - (-110111) = 10110111

В ЭВМ прямой код применяется только для представления поло- жительных двоичных чисел. Для представления отрицательных чисел. применяется либо дополнительный, либо обратный код, так как над - 4 -

отрицательными числами в прямом коде неудобно выполнять арифмети- ческие операции.

Формула для образования дополнительного кода 4 0дроби:

[A] 4доп 0 = 10 + A.

Формула для образования обратного кода 4 0дроби:

[A] 4обр 0 = 10 - 10 5-(n-1) 0 + A.

Например, при n = 8, для A = -0,1100001 [A] 4доп 0 = 10 + (-0,1100001) = 1,0011111 [A] 4обр 0 = 10-10 5-7 0+(-0,1100001) = 1,