Операция алгебраического сложения в ЭВМ
При вычислении суммы двух чисел возможны два варианта: слагаемые имеют одинаковые знаки и слагаемые имеют различные знаки. В результате этого алгоритмы получения суммы для каждого из них различны.
Для операндов с одинаковыми знаками:
1. Сложить два числа.
2. Сумме присвоить знак одного из слагаемых.
Алгоритм получения алгебраической суммы:
1. Сравнить знаки слагаемых, и если они одинаковы, то выполнить сложение по первому алгоритму.
2. Если знаки слагаемых разные, то сравнить слагаемые по абсолютной величине.
3. Вычесть из большего меньшее.
4. Результату присвоить знак большего слагаемого.
Из этого следует, что первый алгоритм проще второго. Следовательно, желательно преобразовать отрицательные числа таким образом, чтобы операцию вычитания заменить операцией сложения, т.е. S=A+(-B).
Для того, чтобы решить эту проблему, необходимо вводить специальные коды: прямой, обратный, дополнительный.
Способ построения этих кодов определяется функциями кодирования, которые должны обеспечить:
1. Запись алгебраического знака числа.
2. Представление отрицательных чисел при помощи вспомогательных, положительных, которые отличаются по изображению от положительных исходных чисел, т.е. области изображений положительных и отрицательных чисел не должны пересекаться.
3. Полную идентичность алгоритмов выполнения операций над числами различных знаков, и следовательно, полную идентичность необходимого при этом оборудования.
Выполнение операции умножения в ЭВМ
Операция умножения является наиболее частой после сложения. Умножение может выполняться суммированием сдвинутых на один или несколько разрядов частичных произведений, каждое из которых является результатом умножения множимого на соответствующий разряд (разряды) множителя.
При точном умножении двух чисел количество значащих цифр произведения может в пределе достичь двойного количества значащих цифр сомножителей. Еще сложнее возникает ситуация при умножении нескольких чисел. Поэтому в произведении только в отдельных случаях используют двойное количество разрядов.
Наиболее просто операция умножения выполняется в прямом коде. При этом на первом этапе определяется знак произведения путем сложения знаковых разрядов сомножителей по модулю 2, затем производится перемножение модулей сомножителей согласно двоичной таблице умножения. Результату присваивается полученный знак.
Так как умножение производится в двоичной системе счисления, частные произведения либо равны 0 (при умножении на 0), либо самому сомножителю (при умножении на 1), сдвинутому на соответствующее количество разрядов.
Произведение можно получить двумя путями:
1) сдвигом множимого на требуемое количество разрядов и прибавлением полученного очередного частичного произведения к ранее накопленной сумме частичных произведений;
2) сдвигом суммы ранее полученных частичных произведений на каждом шаге на 1 разряд и последующим прибавлением к сдвинутой сумме неподвижного множимого либо 0.
Причем каждый из этих методов может различаться еще и тем, с младших или со старших разрядов начинается умножение.
29. Существует две формы записи чисел: естественная и нормальная. При естественной форме число записывается в естественном натуральном виде, например, 12560 – целое число, 0,00345 – правильная дробь, 4,475 – неправильная дробь. При нормальной форме запись одного числа может принимать разный вид в зависимости от ограничений, накладываемых на ее форму. Например, число 12560 может быть записано так: 12560 = 1,256104 = 0,1256105 = 12560010-1 и т.д.
Автоматное представление числа – представление числа в разрядной сетке компьютера.
Представление целых чисел в компьютере
Естественная форма представления числа в компьютере характеризуется тем, что положение его разрядов в автоматном представлении остается всегда постоянным независимо от величины самого числа. Эта форма записи чисел также называется представлением чисел с фиксированной точкой.
Так как числа бывают положительные и отрицательные, то формат (разрядная сетка) автоматного представления числа разбивается на знаковую часть и поле числа. В знаковую часть записывается 0 для положительного числа и 1 для отрицательного.
Если компьютер работает только с целыми числами, то в разрядной сетке один разряд отводится под знак числа, а последующие разряды образуют поле числа.
Диапазон представления чисел в этом случае находится в пределах от и до, где — количество разрядов беззнаковой части.
Если в результате операции появится число, по абсолютному значению превышающее максимально допустимое число, то возникает переполнение разрядной сетки компьютера, что нарушает нормальное функционирование программы.
Обычно целые положительные числа представляются в компьютере в прямом коде, а отрицательные — в дополнительном коде.
Прямой код двоичного числа — такое автоматное представление числа , старший разряд которого является знаковым. Знак числа для положительных чисел, и для отрицательных чисел.
Обратный код отрицательного двоичного числа — такое автоматное представление этого числа , для которого , если и , если . То есть обратный код числа является инверсным изображением самого числа, в котором все разряды исходного числа принимают инверсное (обратное) значение, т.е. все нули заменяются на единицы и наоборот.
Дополнительный код отрицательного двоичного числа – такое автоматное представление этого числа.
Дополнительный код является математическим дополнением основанию q ПСС:
где — абсолютное значение числа, — количество разрядов в представлении числа.
Дополнительный код двоичного числа можно получить из обратного кода, прибавив к младшему разряду единицу.
Таким образом, для выполнения вычитания двух целых чисел выполняется сложение прямого кода уменьшаемого с дополнительным кодом вычитаемого, при этом единица переноса из старшего разряда игнорируется.
Представление чисел с плавающей точкой в общем случае имеет вид:
X = <знак>M*pt,
где М – мантисса числа Х, t – порядок, p – основание ( обычно целая степень числа 2). Мантисса и порядок представляются в системе счисления с основанием p. Знак числа совпадает со знаком мантиссы.
Порядок t может быть положительным или отрицательным целым числом, определяет положение точки в числе Х.
Для представления порядка применяют смещенный код.
Для перехода к смещенному коду от дополнительного кода необходимо инвертировать знаковый разряд кода.
Особенностью смещенного кода является то, что из [X1]см > [X2]см Þ X1 >X2.
Это упрощает сравнение чисел со знаком, сводя его к сравнению представляющих их кодов (чисел без знака).Чтобы сформировать смещенный код числа , сначала выбирается длина битовой комбинации, а затем в порядке счета в обычной двоичной системе последовательно записываются все возможные комбинации, имеющие установленную длину.
30.Числовая информация внутри ЭВМ кодируется в двоичной или в двоично-десятичной системах счисления. Для удобства работы введены следующие термины для обозначения совокупностей двоичных разрядов. Эти термины обычно используются в качестве единиц измерения объемов информации, хранимой или обрабатываемой в ПК:
Количество двоичных разрядов в группе Наименование единицы измерения
1 Бит
8 Байт
16 Параграф
8 · 1024 Кбайт (килобайт)
8 · 10242 Мбайт (мегабайт)
8 · 10243 Гбайт (гигабайт)
8 · 10244 Тбайт (терабайт)
8 · 10245 Пбайт (пентабайт)
Последовательность нескольких битов или байтов часто называют полем данных. Биты в числе (в слове, поле и т.п.) нумеруются справа налево, начиная с 0-го разряда. В ПК могут обрабатываться поля постоянной и переменной длины: Поля постоянной длины:
Слово - 2 байта;
Двойное слово - 4 байта;
Полуслово - 1 байт;