Как компьютер складывает числа

Как компьютер складывает числа

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:


Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:


Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа –1110 вместо обратного кода числа –1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = –1010.

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

5. А и В положительные, сумма А+В больше, либо равна 2 n–1 , где n — количество разрядов формата чисел (для однобайтового формата n=8, 2 n–1 = 27 = 128). Например:

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

Читать еще:  Как работать удаленно на компьютере через интернет

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2 n–1 . Например:

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

Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:


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

4. А и В отрицательные. Например:


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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

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

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Читать еще:  Как добавить компьютеры в wsus

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

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

Как компьютер складывает числа?

  • » rel=»nofollow»> Печать
  • E-mail

Дата Категория: it

Все компьютерные вычисления производятся в дво­ичной системе с использованием базовых электрон­ных элементов — разнообразных видов переключате­лей. Некоторые из этих переключателей — AND (и), OR (или), XOR (исключающее или) — называются логическими элементами, потому что каждый из них дает логический предустановленный результат при использовании двоичного кода.

Поскольку они ра­ботают и на проведении и на сопротивлении элект­рического тока: нет напряжения — означает 0, есть напряжение — означает 1, логические элементы ина­че называются воротами.

Все эти «ворота» похожи между собой тем, что каждый из них имеет больше одного ввода, но всего один вывод. Логический элемент AND (и) дает 1 на выводе, только если все его вводы соответствуют единице. Точно так же «ворота» OR (или) дают ноль на выводе, если все его вводы равны 0. «Ворота» XOR (исключающее или), напротив, дают 1 на выво­де, если на вводе один 0 и одна 1, и производят 0, когда на вводе два ноля и две единицы. Всего на трех элементах, подобных этим, компьютерщики разра­ботали компьютерные схемы (нижняя диаграмма справа), такие как сумматорная схема, которая вы­полняет сложение.

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

Читать еще:  Как майнить биткоин на своем компьютере

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

Логическая схема ввода/вывода

«Ворота» AND (и) выпустят 1, если на обоих вводах окажется 1. Любая другая комбинация на вводе произведет 0 на выводе.

«Ворота» OR (или) выпустят ноль, если на обоих вводах окажется ноль. Если хотя бы на одном из вводов появится единица, то следует ожидать единицу и на выводе.

«Ворота» XOR (исключающее или) выпустят 0, если оба ввода впустят по нулю или по единице. Если на вводе 1 и 0, на выводе будет 1.

Как работает полусумматор

Наверху представлена схема сложения двух одноцифровых двоичных чисел, состоящая из схемы XOR (сверху) и схемы AND (внизу). При слбжении двух единиц напряжение верхнего сумматорного канала проходит через ворота XOR и дает 0 на выходе. Ворота AND преобразовывают две единицы на вводе в одну 1 на выводе. Результат 10 (читается как один-ноль) двоичной системы соответствует числу 2 десятичной системы.

Полный сумматор

В комбинации полусумматор (сверху) и полный сумматор (снизу) могут выполнять операции с большими числами, требующими переноса. Чтобы сложить 2 и 3 или 10 и 11 в двоичном исчисле­нии, полусумматор начинает работу с ворот XOR и производит 1. Ворота AND генерируют 0, который переносится в полный сумматор. В свою очередь, полный сумматор проводит напряжение числа 11 через пять ворот, подбирает перенос из полусумматора и выводит 1 и 0. Когда эти цифры комбинируются с 1 из полусумматора, получается результат 101, или 5 в десятичном исчислении. Для сложения больших чисел используется больше полусумматоров, один для каждой цифры двоично­го кода.

Ссылка на основную публикацию
Adblock
detector