diff --git a/Algorithms.Tests/Numeric/AdditionWithoutArithmeticsTests.cs b/Algorithms.Tests/Numeric/AdditionWithoutArithmeticsTests.cs
new file mode 100644
index 00000000..708181ba
--- /dev/null
+++ b/Algorithms.Tests/Numeric/AdditionWithoutArithmeticsTests.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Numerics;
+using Algorithms.Numeric;
+using NUnit.Framework;
+
+namespace Algorithms.Tests.Numeric;
+
+public static class AdditionWithoutArithmeticTests
+{
+ [TestCase(3, 5, 8)]
+ [TestCase(13, 5, 18)]
+ [TestCase(-7, 2, -5)]
+ [TestCase(0, -7, -7)]
+ [TestCase(-321, 0, -321)]
+ public static void CalculateAdditionWithoutArithmetic_Test(int first, int second, int expectedResult)
+ {
+ // Act
+ var result = AdditionWithoutArithmetic.CalculateAdditionWithoutArithmetic(first, second);
+
+ // Assert
+ Assert.That(result, Is.EqualTo(expectedResult));
+ }
+
+}
diff --git a/Algorithms/Numeric/AdditionWithoutArithmetic.cs b/Algorithms/Numeric/AdditionWithoutArithmetic.cs
new file mode 100644
index 00000000..253e1da9
--- /dev/null
+++ b/Algorithms/Numeric/AdditionWithoutArithmetic.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Numerics;
+
+namespace Algorithms.Numeric;
+
+///
+/// Add the integers without arithmetic operation.
+///
+public static class AdditionWithoutArithmetic
+{
+ ///
+ /// Returns the sum of two integers.
+ ///
+ /// First number to add.
+ /// Second number to add.
+ /// Sum of the two numbers.
+ public static int CalculateAdditionWithoutArithmetic(int first, int second)
+ {
+ while (second != 0)
+ {
+ int c = first & second; // Carry
+ first ^= second; // Sum without carry
+ second = c << 1; // Carry shifted left
+ }
+
+ return first;
+ }
+
+}
diff --git a/README.md b/README.md
index 93e048d2..478edb2f 100644
--- a/README.md
+++ b/README.md
@@ -67,7 +67,8 @@ find more than one implementation for the same objective but using different alg
* [Extended Euclidean Algorithm](./Algorithms/ModularArithmetic/ExtendedEuclideanAlgorithm.cs)
* [Modular Multiplicative Inverse](./Algorithms/ModularArithmetic/ModularMultiplicativeInverse.cs)
* [Numeric](./Algorithms/Numeric)
- * [Absolute](./Algorithms/Numeric/Abs.cs)
+ * [Absolute](./Algorithms/Numeric/Abs.cs)
+ * [Addition Without Arithmetic](./Algorithms/Numeric/AdditionWithoutArithmetic.cs)
* [Aliquot Sum Calculator](./Algorithms/Numeric/AliquotSumCalculator.cs)
* [Amicable Numbers Checker](./Algorithms/Numeric/AmicableNumbersChecker.cs)
* [Decomposition](./Algorithms/Numeric/Decomposition)