Урок 5. Двоичная арифметика (двоичное сложение)

Прежде чем приступить к рассмотрению двоичной арифметики нужно подметить следующее: в отличии от нас (людей), у которых есть различные арифметические операции (сложение, деление, умножение…), у ЭВМ (компьютеров) присутствует только одна арифметическая операция – сложение. Через данную операцию все ЭВМ производят различные вычисления, а вычисление операций умножения, деления и вычитания они производят с помощью различных алгоритмов. Например, операция 7 – 3 для ЭВМ будет представлена в виде 7 + (-3), где 7 и -3 будут представлены в двоичной системе.

Теперь давайте рассмотрим, как будет происходить двоичное сложение в ЭВМ, и нужно сказать, что они не слишком сильно отличается от операции сложения в столбик для десятичной системы счисления изученных в школе. Отличие состоит лишь в том, что в десятичной системе счисления при достижении 10 в разряде происходило присвоение текущему разряду 0 и добавления 1 к следующему, а для двоичной системы это будет происходить при достижении 2.

Например, сложение двух положительных чисел в двоичной системе:

18

Если бы происходило сложение с отрицательным числом, то присутствовала бы ещё дополнительная характеристика отрицательных чисел в двоичной системе счисления, а именно: значение первого бита слева представляло бы собой знак числа, если 0 – число положительное, если 1 – число отрицательное.

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

-1 = 1111 1111
-2 = 1111 1110
-6 = 1111 1010
-128 = 1000 0000 

У всех этих чисел первый левый бит обозначает знак числа.

Пример операции сложения с отрицательным числом (результат: положительное число):

19

Правило: если 1 выйдет за пределы, то нужно её удалить.

Пример операции сложения с отрицательным числом (результат: отрицательное число):

20

Примечание: как уже рассматривалось на 3 уроке, в C# присутствуют знаковые (byte, short, int, long) и беззнаковые (sbyte, ushort, uint, ulong) типы. У знаковых типах 1й левый бит выделяется для хранения знака числа, а у беззнаковых типов – все биты отвечают значениям (на знак бит не выделяется), таким образом исходя из типа ЭВМ может определить как правильно провести операцию сложения с значениями относящимися к данным типам.

Примечание: за проведение арифметических операций с целыми числами ответственный АЛУ, а за проведение арифметических операций с вещественными числами ответственный FPU.

Источник: видеоурок Александра Шевчука "ВИДЕОУРОК №5. ЛОГИЧЕСКИЕ ОПЕРАЦИИ".

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202