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

**URL:** <https://forum.itvdn.com/t/urok-5-dvoichnaya-arifmetika-dvoichnoe-slozhenie/3094>\
**Category:** Справочник C# Starter\
**Created:** [23.01.2019 14:02:49 UTC](https://forum.itvdn.com/t/urok-5-dvoichnaya-arifmetika-dvoichnoe-slozhenie/3094 "2019-01-23T14:02:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![admin.guide](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/6a8cbe/32.png) [@admin.guide](https://forum.itvdn.com/u/admin.guide)\
**Post date:** [23.01.2019 14:02:49 UTC](https://forum.itvdn.com/t/urok-5-dvoichnaya-arifmetika-dvoichnoe-slozhenie/3094/1 "2019-01-23T14:02:49Z")

</div>

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

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

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

![18](https://forum.itvdn.com/uploads/default/original/1X/4ba7ae64e39010e7443b5a74f3e7308175c12fd5.jpeg)

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

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

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

```

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

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

![19](https://forum.itvdn.com/uploads/default/original/1X/9f30ab1fd4196aa06db34065e23efc185f140d65.jpeg)

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

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

![20](https://forum.itvdn.com/uploads/default/original/1X/3c4894e032db646c2cefa73b0ee0ae2e361cecdf.jpeg)

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

**Примечание** : за проведение арифметических операций с целыми числами ответственный [АЛУ](https://ru.wikipedia.org/wiki/%D0%90%D1%80%D0%B8%D1%84%D0%BC%D0%B5%D1%82%D0%B8%D0%BA%D0%BE-%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE), а за проведение арифметических операций с вещественными числами ответственный [FPU](https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80).

Источник: видеоурок Александра Шевчука ["ВИДЕОУРОК №5. ЛОГИЧЕСКИЕ ОПЕРАЦИИ"](https://itvdn.com/ru/video/csharp-starter/logical-operations?position=2135).

[![%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](https://forum.itvdn.com/uploads/default/original/1X/b38ed3846d27463ae91c4449efd4de36bbb0b1b1.jpeg) предыдущая статья](https://forum.itvdn.com/t/urok-5-logicheskij-sdvig-vlevo-vpravo/3093) | [следующая статья ![%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](https://forum.itvdn.com/uploads/default/original/1X/6188b82e0808cd73a15f53f8e652f939106184bc.jpeg)](https://forum.itvdn.com/t/urok-5-izmenenie-znaka-dvoichnogo-chisla/3095)
