МАТЕМАТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЭВМ
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

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

 

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

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

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

Аппаратные средства ЭВМ рассчитаны на представление и обработку двоичных данных. Объясняется это простотой реализации электронного устройства, имеющего два устойчивых состояния. Одно из состояний принимается за 0, другое за 1. За простоту реализации приходится платить большим количеством цифр в записи числа. Двоичное число в среднем в 3,3 раза длиннее десятичного.

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

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

В общем виде число в позиционной системе счисления записывается в виде полинома:

 

где S – основание системы, ai – одна из цифр алфавита этой системы счисления.

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

 

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

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

 

 

n=3

 

m=2

 9 9

9

.

9

9
               

Максимальное число Amax = (Sn – 1) + (1 - S-m)

Например, для десятичной системы при n=3 и m=2 максимальное число

Amax = (103–1) + (1-10-2) = (1000-1) + (1–0.01) = 999 + 0.99 = 999.99

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

 

n=3

 

m=2

 0 0

0

.

0

1
               

Минимальное отличное от нуля число Amin= 0 + S-m

Например, для десятичной системы при n=3 и m=2 минимальное число

Amin = 10-2 = 0.01

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

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

Nк = Sm+n

Для рассмотренного примера количество десятичных чисел Nк=105

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

В таблице приведена запись первых 20-ти чисел в разных системах счисления:

 

A10 A2 A8 A16 A10 A2 A8 A16
0 0 0 0   10 1010 12 A
1 1 1 1   11 1011 13 B
2 10 2 2   12 1100 14 C
3 11 3 3   13 1101 15 D
4 100 4 4   14 1110 16 E
5 101 5 5   15 1111 17 F
6 110 6 6   16 10000 20 10
7 111 7 7   17 10001 21 11
8 1000 10 8   18 10010 22 12
9 1001 11 9   19 10011 23 13

 

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

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

A[2] = 101.1 = 1*22 + 0*21 + 1*20 + 1*2-1 = 4 + 0 + 1 + 0.5 = 5.5[10]

A[16] = AB.8 = 10*161 + 11*160 + 8*16-1 = 160 + 11 + 0.5 = 171.5[10]

A[8] = 173.4 = 1*82  + 7*81 + 3*80 + 4*8-1 = 64 + 56 + 3 + 0.5 = 123.5[10]

Удобно сразу же над цифрами исходного числа проставлять вес разрядов

 
          8 4   2 1 0.5 0.25 A[2] = 1 0 0 1 . 1 1 = 8 + 1 + 0.5 + 0.25 = 9.75[10]  

 

 


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

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

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

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

Шаг 1 A10 = an-1Sn-1+…+a1S1+ a0 | :S Þ an-1Sn-2 +…+ a1S0 + ® a0

                                                            Целая часть Остаток

Шаг 2 A10 = an-1Sn-2+…+a2S1+ a1 | : S Þ an-1Sn-3 +…+ a2S0 + ® a1

                                                                Целая часть Остаток

Шаг n-1 A10 = an-1S1+ an-2 | : S Þ an-1 + ® an-2

                                           Целая часть Остаток

         
   

Пример: 23[10] ® ?[2]        Пример: 23[10] ® ?[8]       Пример: 23[10] ® ?[16]

    10111[2]                                       27[8]                      17[16]

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

 

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

Шаг 1 A10 = a-1S-1 + a-2S-2 +…+a-mS-m | * S Þ a-1 + a-2S-1 + … +a-mS-m+1

     
 


                                                         Целая часть Дробная часть

Шаг 2 A10 = a-2S-1 +…+a-mS-m+1 | * S Þ a-2 + a-3S-1 + … +a-mS-m+2

     
 


                                               Целая часть   Дробная часть

Целая часть Дробная часть

   0                125 * 2

      0                250 * 2

   0                    500 * 2  

   1                    000

Целая часть Дробная часть

 

   0                55 * 16

   8                    800 *16

   C                   800 *16  

   C                  800

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

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

 

Число в системе S1 à Число в десятичной системе à Число в системе S2

Такая схема позволяет выполнять все операции в привычной для человека десятичной системе.

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

 

5. Двоично-восьмеричные и двоично-шестнадцатеричные преобразования

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

23 = 8, поэтому восьмеричную цифру можно представить группой из трех двоичных цифр. Группа из трех двоичных цифр называется триадой;

24 = 16, поэтому шестнадцатеричную цифру можно представить группой из четырех двоичных цифр. Группа из четырех двоичных цифр называется тетрадой.

Преобразование «2 ® 8» . Двигаясь от точки влево и вправо разбить цифры исходного двоичного числа на триады. При необходимости дополнить число слева и справа не значащими нулями. Каждую триаду заменить восьмеричной цифрой.

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

 

Преобразование «2 ® 16» . Правила аналогичны преобразованию «2 ® 8», но исходное двоичное число разбивается на тетрады.

На рисунке приведен пример преобразования двоичного числа 110111110.001111 в шестнадцатеричное число 1BE.3C. Для образования тетрад слева добавлены три нуля, а справа два.

 

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

На рисунке приведен пример преобразования восьмеричного числа 203.4 в двоичное число 10000011.1. Слева отброшен один незначащий ноль, а справа - два незначащих нуля.

 

Преобразование «16 ® 2» . Это преобразование противоположно «2 ® 16». Каждая цифра исходного шестнадцатеричного числа заменяется тетрадой, содержащей двоичный эквивалент шестнадцатеричной цифры. Незначащие левые и правые нули можно отбросить.

На рисунке приведен пример преобразования шестнадцатеричного числа 7CF.A в двоичное число 11111001111.101. Слева и справа отброшено по одному незначащему нулю.

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

Примеры: 7[8] = 4 + 2 +1 Þ 111[2]

                3[8] =  2 +1 Þ 011[2]

                6[8] = 4 + 2  Þ 110[2]

                5[8] = 4 + 1 Þ 101[2]

Для получения двоичной тетрады, эквивалентной шестнадцатеричной цифре, можно использовать правило “8421”. В тетраде необходимо записать единицы на местах цифр, сумма которых дает значение шестнадцатеричной цифры. На местах остальных цифр записать ноль

Примеры: F[16] = 15[10] =  8 + 4 + 2 + 1 Þ 1111[2]

               C[16] = 12[10] =  8 + 4         Þ 1100[2]

               D[16] = 13[10] =  8 + 4 + 1 Þ 1101[2]

               9[16] = 9[10] =   8 +       1 Þ 1001[2]






Двоичная арифметика

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

Таблица. сложения  Таблица. вычитания     Таблица. Умножения

 


    0 + 0 = 0                    10 – 1 = 1                    0 * 0 = 0

    0 + 1 = 1                      1 – 1 = 0                    0 * 1 = 0

    1 + 0 = 1                      0 – 0 = 0                    1 * 0 = 0

    1 + 1 =10                      1 – 0 = 1                    1 * 1 = 1

                        

Сложение двоичных чисел. Выполняется поразрядно, начиная с младшего разряда. В сложении участвуют одноименные разряды слагаемых и перенос в текущий разряд. Результатом является сумма в текущем разряде и перенос в следующий разряд. В зависимости от значения слагаемых перенос будет равен 0 (нет переноса) или 1 (есть перенос). ЭВМ имеет специальное устройство, предназначенное для сложения двоичных чисел. Это устройство называется сумматором. Сумматор реализует сложение через комбинацию логических операций. Логические операции будут рассмотрены позже.

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

 

Умножение двоичных чисел. Выполняется путем последовательного умножения цифр множителя на множимое и сложение частичных сумм. Количество цифр в дробной части результата равно суммарному количеству цифр в дробных частях сомножителей. Пример умножения приведен на Рис.1. В ЭВМ умножение реализуется путем сдвига множимого и прибавление его к сумме, если цифра множителя равна единице.

 

Деление двоичных чисел. Реализуется путем последовательных умножений цифр результата на делитель и вычитания из делимого. Пример деления приведен на Рис.2.

 

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

 

Если при сложении одноименных разрядов и переноса получено число N<S, то оно берется в качестве суммы разряда, а перенос в следующий разряд равен 0. Если получено число N³S, то в качестве суммы берется разность N-S и формируется единица переноса в следующий разряд. При сложении нескольких чисел сумма одноименных разрядов может превысить основание системы счисления в несколько раз. В этом случае необходимо пользоваться общим правилом: в качестве суммы берется остаток от целочисленного деления N/S, а значение переноса в следующий разряд есть целая часть от деления N/S.

При вычитании разрядов при необходимости берется заем из старшего разряда. Вычитание производится из суммы S+Ai, где Ai – значение i-го разряда вычитаемого. Значение разряда, из которого производился заем, уменьшается на 1.

 

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







Дата: 2019-02-02, просмотров: 413.