Главная страница

Электроника. Организация эвм и систем однопроцессорные эвм


Скачать 4.17 Mb.
НазваниеОрганизация эвм и систем однопроцессорные эвм
АнкорЭлектроника
Дата14.12.2022
Размер4.17 Mb.
Формат файлаdoc
Имя файлаBook_1.doc
ТипКонспект
#845557
страница10 из 18
1   ...   6   7   8   9   10   11   12   13   ...   18

2.3. Восьмеричная система счисления


В восьмеричной системе счисления употребляются всего восемь цифр, т.е. эта система счисления имеет основание S = 8. В общем виде восьмеричное число выглядит следующим образом:
,

где .

Восьмеричная система счисления не нужна ЭВМ в отличие от двоичной системы. Она удобна как компактная форма записи чисел и используется программистами (например, в текстах программ для более краткой и удобной записи двоичных кодов команд, адресов и операндов). В восьмеричной системе счисления вес каждого разряда кратен восьми или одной восьмой, поэтому восьмиразрядное двоичное число позволяет выразить десятичные величины в пределах 0-255, а восьмеричное охватывает диапазон 0-99999999 (для двоичной это составляет 27 разрядов).

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

Пример.

Двоичное число 10101011111101(2) записать в восьмеричной системе счисления.

Пример.

Двоичное число 1011.0101(2) записать в восьмеричной системе счисления.

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

2.4. Шестнадцатеричная система счисления


Эта система счисления имеет основание S = 16. В общем виде шестнадцатеричное число выглядит следующим образом:
,

где .


Шестнадцатеричная система счисления позволяет еще короче записывать многоразрядные двоичные числа и, кроме того, сокращать запись 4-разрядного двоичного числа, т.е. полубайта, поскольку 16=24. Шестнадцатеричная система также применяется в текстах программ для более краткой и удобной записи двоичных чисел.

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

Двоичное число 10101011111101(2) записать в шестнадцатеричной системе.

Пример.

Двоичное число 11101.01111(2) записать в шестнадцатеричной системе.

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

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

Кроме того, следует помнить, что шестнадцатеричные и восьмеричные числа – это только способ представления больших двоичных чисел, которыми фактически оперирует процессор. При этом шестнадцатеричная система оказывается предпочтительнее, поскольку в современных ЭВМ процессоры манипулируют словами длиной 4, 8, 16, 32 или 64 бита, т.е. длиной слов, кратной 4. В восьмеричной же системе счисления предпочтительны слова, кратные 3 битам, например слова длиной 12 бит (как в PDP-8 фирмы DEC).

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


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


перенос в

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

2.5.1. Сложение


Как и в десятичной системе счисления, сложение двоичных чисел начинается с правых (младших) разрядов. Если результат сложения цифр МЗР обоих слагаемых не помещается в этом же разряде результата, то происходит перенос. Цифра, переносимая в соседний разряд слева, добавляется к его содержимому. Такая операция выполняется над всеми разрядами слагаемых от МЗР до СЗР.
Пример.

Сложить два числа в десятичном и двоичном представлении (формат – 1 байт).
Перенос (единицы) 11 1111111

Слагаемое 1 099(10) 01100011(2)

Слагаемое 2 095(10) 01011111(2)

Сумма 194(10) 11000010(2)
Операция получается громоздкая со многими переносами, но удобная для ЭВМ.

2.5.2. Вычитание


Операция вычитания двоичных чисел аналогична операции в десятичной системе счисления. Операция вычитания начинается, как и сложение, с МЗР. Если содержимое разряда уменьшаемого меньше содержимого одноименного разряда вычитаемого, то происходит заем 1 из соседнего старшего разряда. Операция повторяется над всеми разрядами операндов от МЗР до СЗР.

Поясним это примером.
Пример.

Вычесть два числа в десятичном и двоичном представлении (формат – 1 байт).
Заем (единица) 1 01100000

Уменьшаемое 109(10) 01101101(2)

Вычитаемое 049(10) 00110001(2)

Разность 060(10) 00111100(2)

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

2.5.3. Умножение


Как и в десятичной системе счисления, операция перемножения двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. Частичные произведения формируются в результате умножения множимого на каждый разряд множителя, начиная с МЗР. Каждое частичное произведение смещено относительно предыдущего на один разряд. Поскольку умножение идет в двоичной системе счисления, каждое частичное произведение равно либо 0 (если в соответствующем разряде множителя стоит 0), либо является копией множимого, смещенного на соответствующее число разрядов влево (если в разряде множителя стоит 1). Поэтому умножение двоичных чисел идет путем сдвига и сложения. Таким образом, количество частичных произведений определяется количеством единиц в множителе, а их сдвиг – положением единиц (МЗР частичного произведения совпадает с положением соответствующей единицы в множителе). Положение точки в дробном числе определяется так же, как и при умножении десятичных чисел.
Пример.

Вычислить произведение 17(10)*12(10) в двоичной форме.

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

Теперь рассмотрим машинный вариант операции перемножения. Общий алгоритм перемножения имеет вид

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

Рассмотрим на примере два машинных варианта выполнения умножения целых чисел: начиная со старшего частичного произведения (“старшими разрядами вперед”) и начиная с младшего частичного произведения (“младшими разрядами вперед”).
Пример.

Найти произведение двух чисел X*Y=1101(2)*1011(2)=13(10)*11(10)= 143(10).

Обозначим Pi – i-е частичное произведение.

1. Умножение старшими разрядами вперед:

2. Умножение младшими разрядами вперед:

2.5.4. Деление


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

Вычислить 204(10) /12(10) в двоичном коде.


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

Вычислить 1100.011(2)/10.01(2).


1   ...   6   7   8   9   10   11   12   13   ...   18


написать администратору сайта