Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Правила выполнения арифметических действий над двоичными числами определяются арифметическими действиями над одноразрядными двоичными числами.
перенос в
старший разряд
Правила выполнения арифметических действий во всех позиционных системах счисления аналогичны.
Как и в десятичной системе счисления, сложение двоичных чисел начинается с правых (младших) разрядов. Если результат сложения цифр МЗР обоих слагаемых не помещается в этом же разряде результата, то происходит перенос. Цифра, переносимая в соседний разряд слева, добавляется к его содержимому. Такая операция выполняется над всеми разрядами слагаемых от МЗР до СЗР.
Пример.
Сложить два числа в десятичном и двоичном представлении (формат 1 байт).
Перенос (единицы) 11 1111111
Слагаемое 1 099(10) 01100011(2)
Слагаемое 2 095(10) 01011111(2)
Сумма 194(10) 11000010(2)
Операция получается громоздкая со многими переносами, но удобная для ЭВМ.
Операция вычитания двоичных чисел аналогична операции в десятичной системе счисления. Операция вычитания начинается, как и сложение, с МЗР. Если содержимое разряда уменьшаемого меньше содержимого одноименного разряда вычитаемого, то происходит заем 1 из соседнего старшего разряда. Операция повторяется над всеми разрядами операндов от МЗР до СЗР.
Поясним это примером.
Пример.
Вычесть два числа в десятичном и двоичном представлении (формат 1 байт).
Заем (единица) 1 01100000
Уменьшаемое 109(10) 01101101(2)
Вычитаемое 049(10) 00110001(2)
Разность 060(10) 00111100(2)
Второй вариант операции вычитания когда уменьшаемое меньше вычитаемого приведен в разделе представления двоичных чисел в дополнительном коде.
Как и в десятичной системе счисления, операция перемножения двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. Частичные произведения формируются в результате умножения множимого на каждый разряд множителя, начиная с МЗР. Каждое частичное произведение смещено относительно предыдущего на один разряд. Поскольку умножение идет в двоичной системе счисления, каждое частичное произведение равно либо 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. Умножение младшими разрядами вперед:
Деление операция, обратная умножению, поэтому при делении двоичных чисел, так же как и в десятичной системе счисления, операция вычитания повторяется до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом.
Пример.
Вычислить 204(10) /12(10) в двоичном коде.
Таким образом, процедура деления не так проста для машинной реализации, поскольку постоянно приходится выяснять, сколько раз делитель укладывается в определенном числе. В общем случае частное от деления получается дробным, причем выбор положения точки совершенно аналогичен тому, как это делается при операциях с десятичными числами.
Пример.
Вычислить 1100.011(2)/10.01(2).