Сложение

Сложе́ние (прибавле́ние) — одна из основных бинарных математических операций (арифметических действий) двух аргументов (слагаемых), результатом которой является новое число (сумма), получаемое увеличением значения первого аргумента на значение второго аргумента. То есть каждой паре элементов  из множества  ставится в соответствие элемент , называемый суммой  и . Это одна из четырёх  математических операций арифметики. Приоритет её в обычном порядке операций равен приоритету вычитания, но ниже, чем у возведения в степень, извлечения корня, умножения и деления. На письме сложение обычно обозначается с помощью знака «плюс»: .
Сложение возможно, только если оба аргумента принадлежат одному множеству элементов (имеют одинаковый тип). Так, на картинке справа запись  обозначает три яблока и два яблока вместе, что в сумме даёт пять яблок. Но нельзя сложить, например, 3 яблока и 2 груши.

Используя систематические обобщения, сложение можно определить для абстрактных величин, таких как целые числа, рациональные числа, вещественные числа и комплексные числа и для других абстрактных объектов, таких как векторы и матрицы.

У сложения есть несколько важных свойств (например, для ) (см. Сумма):

 Коммутативность: 
 Ассоциативность: 
 Дистрибутивность:  и 
 Прибавление  (нулевого элемента) даёт число, равное исходному: 

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

Известны различные устройства для сложения: от древних абаков до современных компьютеров.

Формы записи и терминология 

Сложение записывается с использованием символа плюса «+» между слагаемыми; такая форма записи называется инфиксной нотацией. Результат записывается с использованием знака равенства. Например,

  («а плюс бэ равно цэ»)
  («один плюс один равно двум»)
  («два плюс два равно четырём»)
  (см. «ассоциативность» ниже)
  (см. «умножение» ниже)

В ряде ситуаций подразумевается сложение, но при этом символы сложения не используются:
 В записи чисел в позиционных системах счисления: запись числа  подразумевает суммирование ряда .
 Если имеется столбец чисел, последнее (нижнее) число в котором подчёркнуто, то обычно подразумевается, что все числа в этом столбце складываются, а полученная сумма записывается ниже подчёркнутого числа.
 Если имеется запись, когда перед дробью стоит целое число, то эта запись означает сумму двух слагаемых — целого числа и дроби, которую называют смешанным числом. Например,  3½ = 3 + ½ = 3.5. Такая запись может вызвать путаницу, поскольку в большинстве других случаев подобная запись означает умножение, а не сложение.

Сумма ряда связанных чисел может быть записана с использованием символа Σ, который позволяет компактно записать итерацию. Например,
 

Слагаемые — это числа или объекты, складываемые друг с другом.

Символ плюса «+» (Юникод:U+002B; ASCII: &#43;) — упрощение латинского слова «et», означающего «и». Впервые этот символ встречается в книгах, начиная с 1489 г.

Интерпретации 
Сложение используется для моделирования бесчисленного множества физических процессов. Даже для простого сложения натуральных чисел существует много различных интерпретаций и ещё больше способов визуального представления.

Комбинирование наборов 

Возможно, самая фундаментальная интерпретация сложения — комбинирование наборов:
 Если два или более не пересекающихся наборов объектов объединены в один набор, то число объектов в полученном наборе равно сумме числа объектов в исходных наборах.

Эту интерпретацию легко визуализировать, при этом опасность двусмысленности будет минимальной. Однако непонятно, как с помощью этой интерпретации сложения объяснить сложение дробных или отрицательных чисел.

Одним из возможных решений будет обращение к набору объектов, которые могут быть легко разделены, например, пироги или стержни с сегментами. Вместо комбинирования наборов сегментов стержни могут быть присоединены друг к другу концами, что иллюстрирует другую концепцию сложения: складываются не стержни, складываются их длины.

Расширение длины 

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

Сумму a + b можно интерпретировать как бинарную операцию объединения a и b в алгебраическом смысле, также её можно интерпретировать как добавление b единиц к числу a. В последней интерпретации части суммы a + b играют асимметричные роли, и операция a + b рассматривается как применение к числу a унарной операции +b. Унарный подход позволяет перейти к вычитанию, ведь каждая унарная операция сложения имеет обратную унарную операцию вычитания и наоборот.

Свойства 
Операция сложения на числовых множествах  имеет следующие основные свойства:

Коммутативность 

Сложение коммутативно — от перемены мест слагаемых сумма не меняется (это свойство также известно как переместительный закон сложения):

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

Ассоциативность 

Сложение ассоциативно — при последовательном выполнении сложения трёх или более чисел последовательность выполнения операций не имеет значения (сочетательный закон сложения):

Дистрибутивность 
Сложение дистрибутивно, это — свойство согласованности двух бинарных операций, определённых на одном и том же множестве (распределительный закон) :

Нейтральный элемент 

Относительно сложения в множестве  существует единственный нейтральный элемент, сложение числа с  (нулевым или нейтральным элементом) даёт число, равное исходному:

Этот закон был впервые описан в , который был написан Брахмагуптой в 628 г. Он написал этот закон в виде трёх отдельных законов: для отрицательного, положительного и нулевого числа a, и для описания этих законов он использовал слова, а не алгебраические символы. Позже индийские математики уточнили понятия; около 840 г.,  написал, что «ноль становится таким же, как то, что добавляется к нему», что соответствовало записи 0 + a = a. В XII веке Бхаскара II написал: «Если добавить ничего или вычесть ничего, то количество, положительное или отрицательное, остаётся таким же, как и было», что соответствует записи a + 0 = a.

Обратный элемент 
Сложение с противоположным элементом даёт :

Кроме того, сложение не выводит результат за пределы данного множества чисел, следовательно,  замкнуты относительно операции сложения. Эти множества с операциями  и  образуют кольца (коммутативные кольца с единицей).
На языке общей алгебры вышеперечисленные свойства сложения говорят о том, что  — абелевы группы относительно операции сложения.

Выполнение сложения 

Операцию сложения можно представить как некий «чёрный ящик» с двумя слагаемыми на входе и одним выходом - суммой:

При практическом решении задачи сложения двух чисел необходимо свести её к последовательности более простых операций: "простое сложение", перенос, сравнение и др. Для этого разработаны различные методы сложения, например для чисел, дробей, векторов и др. На числовых множествах используется алгоритм поразрядного сложения. При этом следует рассматривать сложение как процедуру (в отличие от операции).

     
  

 
Как видим, процедура достаточно сложная, состоит из относительно большого числа шагов и при сложении больших чисел может занять продолжительное время.

 является гипероператором инкрементирования:

где  - последовательность операций инкрементирования, выполненная  и  раз.

В худшем случае нахождение десятичной суммы двух десятичных одноразрядных чисел последовательным инкрементированием выполняется за 9 + 9 = 18 операций инкрементирования. В табличном десятичном полусумматоре нахождение десятичной суммы двух десятичных одноразрядных чисел выполняется за одну операцию чтения числа из массива чисел 10x10, т.е. быстрее, чем последовательным инкрементированием.  

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

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

Всего существует  простейших бинарных с бинарным (двухразрядным) результатом десятичных логических функций (2 децита -> 2 децита), где m - количество аргументов функции (входная "-арность"), а n - количество результатов действия функции (выходная "-арность"), что больше всех больших чисел Дирака вместе взятых и числа Шеннона (оценочное минимальное количество неповторяющихся шахматных партий, вычисленное в 1950 году американским математиком Клодом Шенноном, составляет приблизительно ) впридачу.

Одноразрядное двухоперандное (двухаргументное) десятичное сложение можно также представить, как комбинацию (объединение двух) бинарных (двухаргументных, двухоперандных, двухвходовых) десятичных логических функцией с унарным (одноразрядным) результатом, имеющих кроме собственных номеров и собственные названия словами: "одноразрядное десятичное бинарное сложение по модулю 10" и "единица переноса в следующий разряд при одноразрядном десятичном бинарном сложении".

Всего существует  простейших бинарных с унарным (одноразрядным) результатом десятичных логических функций (2 децита -> 1 децит).

Номер функции "одноразрядное десятичное бинарное сложение по модулю 10" содержит все значения функции при переборе значений аргументов от 0 до 9 и относительно просто получается из таблицы десятичного полусумматора: 8765432109 7654321098 6543210987 5432109876 4321098765  3210987654 2109876543 1098765432 0987654321 9876543210 (пробелы отделяют по 10 знаков в номере функции).

Номер функции "единица переноса в следующий разряд при одноразрядном десятичном бинарном сложении" содержит все значения функции при переборе значений аргументов от 0 до 9 и тоже относительно просто получается из таблицы десятичного полусумматора: 
1111111110 1111111100 1111111000 1111110000 1111100000 1111000000 1110000000 1100000000 1000000000 0000000000 (пробелы отделяют по 10 знаков в номере функции).

Так как в разряде переноса не бывает значения больше 1, то разряд переноса в одноразрядном десятичном полусумматоре является более простой десятичной функцией с унарным (одноразрядным) двоичным результатом (2 децита -> 1 бит).

'Half Adder Decimal Single-Digit
CLS
DATA 0,1,2,3,4,5,6,7,8,9
DATA 1,2,3,4,5,6,7,8,9,0
DATA 2,3,4,5,6,7,8,9,0,1
DATA 3,4,5,6,7,8,9,0,1,2
DATA 4,5,6,7,8,9,0,1,2,3
DATA 5,6,7,8,9,0,1,2,3,4
DATA 6,7,8,9,0,1,2,3,4,5
DATA 7,8,9,0,1,2,3,4,5,6
DATA 8,9,0,1,2,3,4,5,6,7
DATA 9,0,1,2,3,4,5,6,7,8

DATA 0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,1
DATA 0,0,0,0,0,0,0,0,1,1
DATA 0,0,0,0,0,0,0,1,1,1
DATA 0,0,0,0,0,0,1,1,1,1
DATA 0,0,0,0,0,1,1,1,1,1
DATA 0,0,0,0,1,1,1,1,1,1
DATA 0,0,0,1,1,1,1,1,1,1
DATA 0,0,1,1,1,1,1,1,1,1
DATA 0,1,1,1,1,1,1,1,1,1

DEFINT I,J,F,A,B
FOR I=0 TO 9
  FOR J=0 TO 9
    READ F2DSM10[I,J]  'Function 2-argument Decimal Summ Mod 10 NonSymmetric
  NEXT J
NEXT I
FOR I=0 TO 9
  FOR J=0 TO 9
    READ F2DC10[I,J]   'Function 2-argument Decimal Carry Summ 10 NonSymmetric
  NEXT J
NEXT I

A=9
B=9
PRINT USING "#";A;
PRINT " + ";
PRINT USING "# = ";B;
PRINT USING "#";F2DC10[A,B];
PRINT USING "#";F2DSM10[A,B]
END

Врождённая способность 
Исследования развития математических способностей, которые начались в 1980-х годах, рассматривали феномен привыкания: младенцы смотрят дольше на ситуации, которые являются для них неожиданными. В эксперименте  1992 года использовались куклы Микки Мауса, с которыми проводились различные манипуляции за ширмой. Этот эксперимент показал, что пятимесячные младенцы ожидают, что 1 + 1 — это 2, и удивляются тому, когда оказывается, что 1 + 1 — это 1 или 3. Позже этот результат был подтверждён в других лабораториях с использованием разных методов. В другом эксперименте в 1992 году с малышами постарше, в возрасте от 18 до 35 месяцев, использовалось развитие моторных функций детей, позволявшее им доставать шарики для пинг-понга из коробки; младшие ребята хорошо справлялись с небольшим числом шариков, более старшие научились считать сумму до 5.

Даже некоторые животные проявляют способность складывать, в особенности приматы. Эксперимент 1995 года был аналогичен эксперименту Винн 1992 года, но вместо кукол использовались баклажаны. Выяснилось, что макаки-резусы и эдиповы тамарины показывают схожие человеческим младенцам способности. Более того, один шимпанзе, после того, как его научили различать и понимать смысл арабских цифр от 0 до 4, смог считать сумму двух чисел без какой-либо подготовки. Позже было выяснено, что азиатские слоны способны овладеть базовыми арифметическими операциями.

Овладение сложением детьми 
Как правило, сначала дети учатся подсчёту. Когда даётся задача, в которой требуется объединить два предмета и три предмета, маленькие дети обращаются к помощи конкретных предметов, например, счёт на пальцах или помощь рисунка. По мере приобретения опыта, они учат или открывают для себя стратегию «подсчёта»: когда требуется найти, сколько будет два плюс три, дети перечисляют два числа, идущие после числа три, проговаривая: «три, четыре, пять» (обычно загибая пальцы), и, в итоге, получая пять. Эта стратегия кажется почти универсальной; дети могут легко перенять её у сверстников или учителей. Многие дети сами доходят до этого. Накопив какой-то опыт, дети учатся складывать быстрее, используя коммутативность сложения, начиная перечислять числа от самого большого числа в сумме, как в описанном выше случае, начиная с трёх и перечисляя: «четыре, пять». В конце концов, дети начинают использовать какие-либо факты о сложении («»), получая их либо опытным путём, либо запоминая их. Когда одни факты осядут в памяти, дети начинают выводить неизвестные факты из известных. Например, ребёнок, складывающий шесть и семь, может знать, что 6 + 6 = 12, и что поэтому 6 + 7 на один больше, то есть 13. К такому способу вывода приходят довольно быстро и большинство учеников начальной школы полагаются на смесь всего того, что они запомнили и того, что они могут вывести, что в итоге позволяет им бегло складывать.

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

Таблица сложения 
Детям часто показывают таблицу сложения пар чисел от 1 до 10 для лучшего запоминания. Зная эту таблицу, можно выполнить любое сложение.

Десятичная система 

Для успешного сложения в десятичной системе нужно помнить или уметь быстро выводить 100 «фактов (примеров) сложения» для одноразрядных чисел. Кто-то может запомнить все эти факты, заучивая их, но стратегии изучения сложения путём использования шаблонов более информативны и для большинства людей более эффективны:
 Коммутативное свойство: использование шаблона  снижает количество «фактов о сложении», которых нужно запомнить, со 100 до 55.
 На один или на два больше: прибавление 1 или 2 — это базовая задача, и решить её можно перечислением (подсчётом) или, в конце концов, полагаясь на интуицию.
 Ноль: поскольку ноль является нейтральным элементом для операции сложения (аддитивной единицей), постольку прибавить ноль просто. Тем не менее, во время изучения арифметики некоторым ученикам сложение представляется как процесс, во время которого слагаемые всегда увеличиваются; акцент на  задачи может помочь понять «исключительность» нуля.
 Удваивание: складывание числа с самим собой связано с задачей удвоенного (повторного) подсчёта и умножением. Факты об удваивании являются основой для многих связанных с ними фактов, и ученикам легко их относительно легко понять.
 Почти-удваивание (Суммы, близкие к операции удваивания): сумма 6 + 7 = 13 может быть быстро выведена из факта об удваивании 6 + 6 = 12 и прибавления единицы, или из факта 7 + 7 = 14 и вычитания единицы.
 Пять и десять: суммы вида 5 +  и 10 +  обычно запоминаются рано и могут быть использованы для выведения других фактов. Например, результат суммы 6 + 7 = 13 может быть выведен с использованием факта 5 + 7 = 12 добавлением к последнему единицы.
 Получение десятки (достраивание до десяти): существует такая стратегия, в которой 10 используется в качестве промежуточного результата при наличии слагаемых 8 или 9; например, 8 + 6 = 8 + 2 + 4 = 10 + 4 = 14.
По мере взросления ученики запоминают всё больше фактов, и учатся быстро выводить из них другие факты. Многие ученики не запоминают все факты, но могут быстро вывести требуемый.

Перенос 
В стандартном алгоритме сложения многоразрядных чисел цифры, из которых состоят записи складываемых чисел, располагаются одна под другой. Выполняют сложение цифр отдельно в каждом столбце, начиная с правого. Если сумма цифр в столбце превышает 10, лишняя цифра «переносится» в следующий столбец (левее). Например, в сумме 27 + 59

   ¹
   27
 + 59
 ————
   86

7 + 9 = 16 и цифра 1 переносится в следующий столбец. В альтернативном способе начинают сложение с наиболее значимой цифры слева; в этой стратегии перенос выполняется несколько грубее, но быстрее получается приблизительная сумма. Существует много других методов переноса.

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

Например, сумму 45,1 + 4,34 можно вычислить следующим образом:
    4 5 , 1 0
 +  0 4 , 3 4
 ————————————
    4 9 , 4 4

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

Например:
 

Особый случай — сложение чисел, различающихся на несколько порядков, с последовательным округлением. Если , то и погрешности этих чисел будут несопоставимы (), и при выполнении сложения бо′льшая погрешность поглотит меньшую. Так может быть нарушено свойства ассоциативности.

Рассмотрим, например, выражение : если выполнить сначала , после округления результата получим , складывая далее, имеем , а если выполнять сложение в ином порядке, то: . Таким образом, при неаккуратном округлении могут получиться различные значения одного и того же выражения.

Сложение в других системах счисления 

Сложение для чисел с другими основаниями идентично сложению в десятичной системе

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

 0 + 0 → 0
 0 + 1 → 1
 1 + 0 → 1
 1 + 1 → 0, переносится 1 (так как 1 + 1 = 2 = 0 + (1 × 21))
Сумма двух знаков «1» равна знаку «0», а 1 должна быть добавлена в следующий столбец. Эта ситуация аналогична тому, что происходит в десятичной системе при суммировании определённых однозначных чисел; если результат равен или превышает значение основания системы счисления (10), цифры слева увеличиваются:

 5 + 5 → 0, перенос 1 (так как 5 + 5 = 10 = 0 + (1 × 101))
 7 + 9 → 6, перенос 1 (так как 7 + 9 = 16 = 6 + (1 × 101))

Эта операция известна как «перенос». Когда результат сложения превосходит диапазон значений и разряда, нужно «перенести» избыток, делённый на основание системы (то есть на 10 в десятичной системе) влево, добавляя его к значению в следующем разряде. Это связано с тем, что значение в следующем разряде в  раз больше (в -ой системе счисления), чем значение в текущем разряде. Перенос в двоичной системе счисления работает также, как и в десятичной системе:

   1 1 1 1 1    (перенос)
     0 1 1 0 1
 +   1 0 1 1 1
 —————————————
   1 0 0 1 0 0 = 36

В этом примере складываются два числа: 011012 (1310) и 101112 (2310). В верхней строке указано наличие переноса. Начинаем складывать с правого столбца: 1 + 1 = 102. Здесь 1 переносится влево, а 0 записывается в нижней строке. Теперь складываются числа во втором столбце справа: 1 + 0 + 1 = 102; 1 переносится, а 0 записывается в нижней строке. Третий столбец: 1 + 1 + 1 = 112. В этом случае 1 переносится в нижней строке. В итоге получаем 1001002 (или 36 в десятичной системе счисления).

Компьютеры 

Аналоговые компьютеры работают напрямую с физическими величинами, поэтому их механизм сложения зависит от вида слагаемых. Механический сумматор может представлять два слагаемых в виде позиций скользящих блоков, в этом случае их можно складывать при помощи усредняющего рычага. Если слагаемые представлены в виде скоростей вращения двух валов, их можно сложить при помощи дифференциала. Гидравлический сумматор может складывать давления в двух камерах, используя второй закон Ньютона, чтобы уравновесить силы на сборку поршней. Наиболее типичный случай применения аналогового компьютера — это сложение двух напряжений (относительно заземления); это можно грубо реализовать при помощи схемы с резисторами, а в усовершенствованной версии используется операционный усилитель.

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

Абак, также называемый счётной доской — это вычислительный прибор, который использовался за много веков до принятия современной системы счисления и который всё ещё широко используется купцами, торговцами и клерками в Азии, Африке, и других континентах; предполагается, что абак создан не позднее 2700—2300 до н. э., тогда он использовался шумерами.

Блез Паскаль изобрёл механический калькулятор в 1642; это была первая операционная суммирующая машина. В этом калькуляторе механизм переноса осуществлялся благодаря гравитации. Это был единственный операционный калькулятор в 17 веке и самый первый автоматический цифровой компьютер. Суммирующая машина Паскаля была ограничена своим механизмом переноса, который позволял крутить колёса только в одну сторону и, таким образом, складывать. Чтобы вычитать, пользователь должен был использовать второй набор цифр для представления результата и , которые включали в себя такое же количество шагов, как и сложение. Джованни Полени продолжил дело Паскаля, построив второй функциональный механический калькулятор в 1709 г. Циферблат этого калькулятора был из дерева, и однажды установленный он мог перемножать два числа между собой автоматически.

Сумматоры выполняют целочисленное сложение в электронных цифровых вычислительных машинах, обычно используя бинарную арифметику. В простейшей структуре используется сумматор волнового переноса (выходной перенос предыдущего в цепочке сумматора является входным переносом для следующего сумматора), это позволяет выполнять сложение для многоразрядных чисел. Небольшое улучшение представлено в , который действует похожим с человеческой интуицией образом; он не выполняет все переносы в сумме 999 + 1, он обходит группу девяток и перескакивает сразу к ответу.

На практике сложение можно выполнять через сложение по модулю два и операцию «И» в сочетании с другими битовыми операциями, как показано ниже. Обе эти операции просто реализовать в цепях сумматоров, которые, в свою очередь, могут объединяться в более сложные логические операции. В современных цифровых компьютерах сложение целых чисел, как и другие команды целочисленной арифметики, являются одними из самых быстрых операций, в то же время они имеют огромное влияние на общую производительность компьютера, поскольку на целочисленные операции приходится существенная доля всех вычислений. Целочисленное сложение используется, например, в таких задачах как генерация адресов во время доступа к памяти и выборка команд во время определённого порядка их выполнения. Чтобы увеличить скорость, современные компьютеры вычисляют значения в разрядах параллельно; такие схемы называются выборка переноса,  и псевдоперенос в . В большинстве случаев реализация сложения на компьютере является гибридом последних трёх конструкций. В отличие от сложения на бумаге, сложение на компьютере часто изменяет слагаемые. На древнем абаке и доске для сложения во время выполнения операции сложения оба слагаемых уничтожались, оставалась только сумма. Влияние абака на математическое мышление было настолько велико, что в ранних латинских текстах часто утверждалось, что в процессе сложения «числа с числом» оба числа исчезают. Возвращаясь к современности, отметим, что инструкция ADD микропроцессора заменяет значение первого слагаемого суммой, второе слагаемое остаётся без изменений. В высокоуровневом языке программирования оценивание a + b не изменяет ни a, ни b; если ставится задача записать сумму в a, то это должно быть явно указано, обычно с выражением a = a + b. В некоторых языках программирования, таких как C или C++ эта запись сокращается до a += b.

// Iterative Algorithm 
int add(int x, int y){
    int carry = 0;  
    while (y != 0){        
       carry = AND(x, y);   // Logical AND 
       x     = XOR(x, y);   // Logical XOR
       y     = carry << 1;  // left bitshift carry by one  
   } 
   return x;   
}
// Recursive Algorithm
int add(int x, int y){
   return x if (y == 0) else add(XOR(x, y) , AND(x, y) << 1); 
}

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

Ещё одной важной особенностью компьютерных вычислений с плавающей точкой является ограниченная точность представления вещественного числа, в связи с чем вычисления с плавающей точкой на компьютере выполняются, вообще говоря, приближённо, а к результатам вычислений (в том числе, промежуточным) применяется операция округления. Округление, как правило, применяется даже к тем числам, которые в десятичной системе счисления представлены конечной дробью, то есть точно (поскольку в наиболее распространённых компьютерах применяется двоичная система счисления). В связи с этим при суммировании на компьютере чисел с плавающей точкой сумма, как правило, зависит от последовательности суммирования слагаемых — иногда существенно, если порядки слагаемых значительно отличаются. С учётом данного обстоятельства при написании программ, где используется суммирование большого количества слагаемых, приходится прибегать к специальным мерам, направленным на снижение погрешности. Одним из наиболее эффективных методов снижения погрешности суммирования является алгоритм Кэхэна.

Сложение чисел 
Для представления основных свойств сложения сначала нужно определиться с контекстом. Изначально сложение определено для натуральных чисел. Сложение определяется для всё больших и больших множеств, включая натуральные числа: целые числа, рациональные числа и вещественные числа. (В математическом образовании сложение положительных дробей проходят до сложения отрицательных чисел.)

Натуральные числа 
Воспользуемся определением натуральных чисел  как классов эквивалентности конечных множеств. Обозначим классы эквивалентности конечных множеств  порождённых биекциями, с помощью скобок: . Тогда арифметическая операция «сложение» определяется следующим образом:

где  — дизъюнктное объединение множеств. Данная операция на классах введена корректно, то есть не зависит от выбора элементов классов, и совпадает с индуктивным определением.

Взаимно однозначное отображение конечного множества  на отрезок  можно понимать как нумерацию элементов множества  . Этот процесс нумерации называют «счётом». Таким образом, «счёт» - это  установление взаимно-однозначного соответствия между элементами множества и отрезком натурального ряда чисел.

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

где: ;
 - количество цифр в числе ;
 - порядковый номером разряда (позиции), ;
 - основание системы счисления;
 множество числовых знаков (цифр), конкретной системы счисления:
,
,
;
тогда:

складывая поразрядно, получаем:

 
 
 

Таким образом, операция сложения сводится к процедуре последовательного простого сложения одноразрядных чисел , с формированием единицы переноса при необходимости, которое производится либо табличным методом, либо инкрементированием (счётом).

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

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

Другое известное определение рекурсивно:
 Пусть n+ —  за n натуральное число, например 0+=1, 1+=2. Пусть a + 0 = a. Тогда общая сумма определяется рекурсивно: a + (b+) = (a + b)+. Отсюда 1 + 1 = 1 + 0+ = (1 + 0)+ = 1+ = 2.
В литературе существуют различные варианты этого определения. В рекурсионной теореме на частично упорядоченном множестве N2 используется в точности определение, данное выше. С другой стороны, в некоторых источниках предпочитают использовать ограниченную Рекурсионную теорему, которая применяется только к множеству натуральных чисел. Одни предлагают временно «зафиксировать» a, применяя рекурсию на b, чтобы определить функцию "a + ", и вставлять эти унарные операции для всех a, чтобы сформировать полную бинарную операцию.

Это рекурсивное определение сложения было дано Дедекиндом ещё в 1854 году, и он расширил его в последующие десятилетия. С помощью математической индукции Дедекинд доказал свойства ассоциативности и коммутативности.

Целые числа 

Множество целых чисел — расширение множества натуральных чисел , получаемое добавлением отрицательных чисел  вида . Множество целых чисел обозначается  Арифметические операции над целыми числами определяются как непрерывное продолжение соответствующих операций над натуральными числами. Отличие от натуральных чисел состоит в том, что отрицательные числа на числовой прямой направлены в противоположную сторону, это несколько меняет процедуру сложения. Необходимо учитывать взаимное направление чисел, здесь возможны несколько случаев:

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

Другое построение множества целых чисел основано на группах Гротендика. Главная идея заключается в том, что каждое целое число может быть представлено (не одним способом) как разность двух натуральных чисел, поэтому мы можем определить целое число, как разность двух натуральных чисел. Тогда сложение определяется следующим образом:
 Пусть имеются два целых числа a − b и c − d, где a, b, c и d — натуральные числа, тогда (a − b) + (c − d) = (a + c) − (b + d).

Рациональные числа 
Множество рациональных чисел обозначается  (от  «частное») и может быть записано в таком виде: 

Для сложения рациональных чисел в виде обыкновенных (или простых) дробей вида: , их следует преобразовать (привести) к общему (одинаковому) знаменателю. Например, взять произведение знаменателей, числители при этом умножаются на соответствующие знаменатели. Затем сложить полученные числители, а произведение знаменателей станет общим.

Если даны два рациональных числа  и  такие, что:  (дроби несократимые), тогда:
  

Либо можно найти наименьшее общее кратное (НОК) знаменателей. Порядок действий:
 Находим наименьшее общее кратное знаменателей: .
 Умножаем числитель и знаменатель первой дроби на .
 Умножаем числитель и знаменатель второй дроби на .
После этого знаменатели обеих дробей совпадают (равны ). В ряде простых случаев это упрощает вычисления, но в случае больших чисел расчёты значительно усложняются. Можно взять в качестве  любое другое общее кратное.

Пример сложения:

Если знаменатели обеих дробей совпадают, то:

Если знаменатели кратны какому-либо числу, то преобразуем только одну дробь:

Арифметическая операция «сложение» над рациональными числами относится к замкнутым операциям.
Коммутативность и ассоциативность сложения рациональных чисел — следствие законов целочисленной арифметики. Более строгое и общее определение см. в статье поле дробей.

Аналогичным образом складываются физические величины: их выражают через общие единицы измерения. Например, чтобы сложить 50 миллилитров и 1,5 литра, необходимо перевести миллилитры в литры и привести дроби к общему знаменателю:
 литра.

Вещественные числа 
Арифметические операции над вещественными числами, представимыми в виде бесконечных десятичных дробей, определяются как непрерывное продолжение соответствующих операций над рациональными числами.

Если даны два вещественных числа, представимые бесконечными десятичными дробями:
 ,
 
определённые соответственно фундаментальными последовательностями рациональных чисел (удовлетворяющие условию Коши), обозначенные как:  и , то их суммой называют число , определённое суммой последовательностей  и :
;
вещественное число , удовлетворяет следующему условию:
.
Таким образом, сумма двух вещественных чисел  и  — такое вещественное число , которое содержится между всеми суммами вида  с одной стороны и всеми суммами вида  с другой стороны.

На практике для того, чтобы сложить два числа  и , необходимо заменить их с требуемой точностью приближёнными рациональными числами  и . За приближённое значение суммы чисел  берут сумму указанных рациональных чисел . При этом не важно, с какой стороны (по недостатку или по избытку) взятые рациональные числа приближают  и . Сложение производится по алгоритму поразрядного сложения.

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

Пример сложения , с точностью до 3-го знака после запятой:
 Округляем данные числа до 4-го знака после запятой (для повышения точности вычислений);
 Получаем:  ;
 Поразрядно складываем:  ;
 Округляем до 3-го знака после запятой:  .

График 
На множестве вещественных чисел график функции сложения имеет вид плоскости, проходящей через начало координат и наклонённой к осям на 45° угловых градусов. Так как , то и для этих множеств значения функции сложения будет принадлежать этой плоскости.

Комплексные числа 

Комплексные числа складываются друг с другом путём сложения действительных и мнимых частей. Это значит, что:
 
Где: ,  — мнимая единица .Используя представление комплексных чисел как точек на комплексной плоскости, можно дать сложению комплексных чисел следующую геометрическую интерпретацию: суммой комплексных чисел  и , представленных точками на комплексной плоскости, является точка C, полученная путём построения параллелограмма, три вершины которого находятся в точках O, A и B. Или, можно сказать, что C — это такая точка, что треугольники OAB и CBA конгруэнтны.

Аналогично для гиперкомплексных чисел (комплексных чисел n-ой размерности):

Сложение произвольных чисел 
При сложении чисел, принадлежащих разным множествам, необходимо (если возможно) представить множество с меньшей мощностью как подмножество множества с большей мощностью, либо найти «наименьшее общее множество». Например, если нужно сложить натуральное число  с рациональным , то, воспользовавшись тем, что натуральные числа — подмножество рациональных, представляем число  как рациональное  и складываем два рациональных числа . Аналогично, пользуясь тем, что: , можно складывать числа из различных множеств между собой.
Возвращаясь к примеру с яблоками, воспользуемся тем, что множество яблок и множество груш — подмножества множества фруктов: , и таким образом можно сложить 3 яблока и 2 груши, представив их как подмножества множества фруктов:  фрукта_яблока  фрукта_груши  фруктов.

Обобщения 
Существует много бинарных операций, которые можно рассматривать как обобщения операции сложения действительных чисел. Такие обобщённые операции являются основным предметом изучения общей алгебры, также они встречаются в теории множеств и теории категорий.

Сложение в абстрактной алгебре

Сложение векторов 
Векторное пространство — это алгебраическая структура, в которой любые два вектора можно складывать и любой вектор можно умножать на число. Простой пример векторного пространства — множество всех упорядоченных пар действительных чисел; упорядоченная пара  — это вектор с началом в точке  евклидовой плоскости и концом в точке  (и все сонаправленные ему). Сумма двух векторов получается путём сложения их соответствующих координат:
.
Эта операция сложения — центральная в классической механике, в которой векторы рассматриваются как аналоги сил.

Сложение матриц 

Сложение матриц определяется для двух матриц одинакового размера. Сумма двух матриц A и B размера m × n (произносится «m на n»), записывается как A + B и представляет собой матрицу размера m × n, полученную путём сложения соответствующих элементов:

 

Например:

Арифметика остатков 

Множество остатков от деления на 12 состоит из двенадцати элементов; это множество наследует операцию сложения целых чисел. Множество остатков по модулю 2 имеет только два элемента; наследуемая им операция сложения известна в логике высказываний как операция «исключающее или». В геометрии сумма двух угловых мер часто определяется как сумма вещественных чисел по модулю 2π. Такое определение соответствует операции сложения на окружности, которая, в свою очередь, обобщается до операции сложения на многомерном торе.

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

Сложение в теории множеств и теории категорий 
Обобщением сложения натуральных чисел является сложение порядковых чисел и кардинальных чисел в теории множеств. Эти операции представляют собой два разных обобщения сложения натуральных чисел на трансфинитный случай.
В отличие от большинства типов операции сложения, сложение порядковых чисел не коммутативно.
Сложение кардинальных чисел, тем не менее, является коммутативной операцией, тесно связанной с операцией дизъюнктного объединения.

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

Операции, связанные со сложением 
Сложение, так же, как и вычитание, умножение и деление, считается одной из основных операций и используется в элементарной арифметике.

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

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

Умножение можно понимать как . Если терм  входит в сумму n раз, то эта сумма равна произведению n и . Если n не является натуральным числом, произведение всё ещё может иметь смысл; например, умножение на -1 даёт противоположное число.

Сложение и умножение действительных или комплексных чисел можно взаимно заменять при помощи экспоненциальной функции:
 ea + b = ea eb.

Это тождество позволяет умножать, используя  логарифмов и сложение вручную; оно также позволяет умножать с использованием логарифмической линейки. Эта формула является также хорошим приближением первого порядка в широком контексте групп Ли, где она связывает умножение бесконечно малых элементов группы Ли со сложением векторов в соответствующей алгебре Ли.

У умножения есть даже больше обобщений, чем у сложения. Вообще говоря, операции умножения всегда дистрибутивны относительно сложения. Это требование закреплено в определении кольца. В некоторых случаях, таких как целые числа, дистрибутивности умножения относительно сложения и наличия мультипликативной единицы достаточно, чтобы однозначно определить операцию умножения. Свойство дистрибутивности также характеризует сложение; раскрывая скобки в произведении (1 + 1)(a + b) двумя способами, приходим к выводу, что сложение должно быть коммутативным. По этой причине сложение в кольце всегда коммутативно.

Деление — это арифметическая операция, отдалённо связанная со сложением. Поскольку a/b = a(b−1), деление является дистрибутивным справа относительно сложения: (a + b) / c = a / c + b / c. Тем не менее, деление не является дистрибутивным слева относительно сложения; 1/ (2 + 2) не равняется 1/2 + 1/2.

Упорядочивание 

Операция нахождения максимума «max (a, b)» — это бинарная операция, похожая на сложение. На самом деле, если два неотрицательных числа a и b имеют различные порядки, то их сумма примерно равна их максимуму. Это приближение является чрезвычайно полезным в приложениях математики, например, при усечении ряда Тейлора. Тем не менее, эта операция приводит к постоянным трудностям в численном анализе, так как операция взятия максимума не является обратимой. Если b намного больше, чем a, то обычное вычисление (a + b) − b может привести к накоплению неприемлемой , возможно получение нулевого результата. См. также .

Это приближение становится точным при переходе к бесконечному пределу; если какое-либо из чисел a и b является кардинальным числом, то их кардинальная сумма в точности равна большему из двух. Соответственно, операция вычитания не определена для множеств бесконечной мощности.

Нахождение максимума является коммутативной и ассоциативной операцией, как и сложение. Более того, поскольку сложение сохраняет упорядочение действительных чисел, сложение дистрибутивно по отношению к функции нахождения максимума таким же образом, как и умножение по отношению к сложению:
 a + max (b, c) = max (a + b, a + c).

По этим причинам в тропической геометрии умножение заменяется на сложение, а сложение — на нахождение максимума. В этом контексте сложение называют «тропическим умножением», нахождение максимума — «тропическим сложением», а тропическую «аддитивную единицу» — отрицательной бесконечностью. Некоторые авторы предпочитают заменять сложение минимизацией; в этом случае аддитивной единицей является положительная бесконечность.

Объединяя эти наблюдения вместе, тропическое сложение приблизительно соответствует обычному сложению при помощи логарифма:
 log (a + b) ≈ max (log a, log b),
что становится более точным при возрастании основания логарифма. Приближение может стать точным, если выделить константу h, названную по аналогии с постоянной Планка в квантовой механике, и взять , при котором h стремится к нулю:
 
В этом смысле операция нахождения максимума является деквантизацией сложения.

Другие способы сложения 
Инкрементирование, или применение функции следования — это прибавление 1 к числу.

Суммирование — это сложение сколь угодно большого количества чисел, обычно больше, чем двух. Частными случаями этого понятия являются суммирование одного числа (результат такого суммирования равен самому числу), а также , равная нулю. Бесконечное суммирование — нетривиальная процедура, известная как нахождение суммы ряда.

Суммирование единичной функции по конечному множеству даёт тот же результат, что и подсчёт числа элементов этого множества.

Интегрирование — это своего рода «суммирование» по континууму или, более точно и общо, по гладкому многообразию. Интегрирование по множеству нулевой размерности сводится к суммированию.

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

Свёртка используется для сложения двух независимых случайных величин, заданных функциями распределения. В стандартном определении свёртки используются интегрирование, вычитание и умножение. В целом, свёртку уместно рассматривать как «сложение на области определения», а векторное сложение — как «сложение на области значений».

См. также 
 Соглашение Эйнштейна
 Сумма
 Алгоритм Кэхэна
 Вычитание
 Умножение
 Деление

Примечания

Литература 

на русском языке
 
 
 
 
 
 
 
 
 
 
 
на английском языке

Ссылки 

Элементарная математика
Арифметические действия
Бинарные операции