From 6522012065712fb0ece31bff9ff10b38a83b10e1 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Thu, 22 Sep 2022 10:14:04 -0500 Subject: Initial commit --- SumTwoIntegers.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 SumTwoIntegers.java (limited to 'SumTwoIntegers.java') diff --git a/SumTwoIntegers.java b/SumTwoIntegers.java new file mode 100644 index 0000000..acb2590 --- /dev/null +++ b/SumTwoIntegers.java @@ -0,0 +1,30 @@ +import java.lang.*; +import java.util.*; + +class SumTwoIntegers { + public static int getSum(int a, int b) { + int bitmask = 0b1; + int carry = 0b0; + int sum = 0; + + while (bitmask != 0) { + int i = a & bitmask; + int j = b & bitmask; + + sum |= (i ^ j) ^ carry; + carry = (i & j) | ((i | j) & carry); + + bitmask <<= 1; + carry <<= 1; + } + return sum; + } + + public static void main(String[] args) { + int a = 12; + int b = 32; + int ans = getSum(a, b); + System.out.println(ans); + System.out.println(Integer.toBinaryString(ans)); + } +} -- cgit v1.2.3