int getSum(int a, int b) {
unsigned result = 0, carry = 0;
for (int i = 0; i < 32; i++) {
unsigned x = ((unsigned)a >> i) & 1, y = ((unsigned)b >> i) & 1;
unsigned bit = x ^ y ^ carry;
carry = (x & y) | (x & carry) | (y & carry);
result |= bit << i;
}
return (int)result;
}
public int getSum(int a, int b) {
int result = 0, carry = 0;
for (int i = 0; i < 32; i++) {
int x = (a >>> i) & 1, y = (b >>> i) & 1;
int bit = x ^ y ^ carry;
carry = (x & y) | (x & carry) | (y & carry);
result |= bit << i;
}
return result;
}
def get_sum(a, b):
result, carry = 0, 0
for i in range(32):
x, y = (a >> i) & 1, (b >> i) & 1
bit = x ^ y ^ carry
carry = (x & y) | (x & carry) | (y & carry)
result |= bit << i
return result if result < 2**31 else result - 2**32
function getSum(a: number, b: number): number {
let result = 0, carry = 0;
for (let i = 0; i < 32; i++) {
const x = (a >>> i) & 1, y = (b >>> i) & 1;
const bit = x ^ y ^ carry;
carry = (x & y) | (x & carry) | (y & carry);
result |= bit << i;
}
return result;
}
int getSum(int a, int b) {
if (b == 0) return a;
return getSum(a ^ b, (int)((unsigned)(a & b) << 1));
}
public int getSum(int a, int b) {
if (b == 0) return a;
return getSum(a ^ b, (a & b) << 1);
}
def get_sum(a, b):
MASK = 0xFFFFFFFF
def go(x, y):
if y == 0: return x
return go((x ^ y) & MASK, ((x & y) << 1) & MASK)
r = go(a & MASK, b & MASK)
return r if r <= 0x7FFFFFFF else ~(r ^ MASK)
function getSum(a: number, b: number): number {
if (b === 0) return a;
return getSum(a ^ b, (a & b) << 1);
}
int getSum(int a, int b) {
while (b != 0) {
int carry = (int)((unsigned)(a & b) << 1);
a = a ^ b;
b = carry;
}
return a;
}
public int getSum(int a, int b) {
while (b != 0) {
int carry = (a & b) << 1;
a = a ^ b;
b = carry;
}
return a;
}
def get_sum(a, b):
MASK = 0xFFFFFFFF
a, b = a & MASK, b & MASK
while b != 0:
carry = ((a & b) << 1) & MASK
a = (a ^ b) & MASK
b = carry
return a if a <= 0x7FFFFFFF else ~(a ^ MASK)
function getSum(a: number, b: number): number {
while (b !== 0) {
const carry = (a & b) << 1;
a = a ^ b;
b = carry;
}
return a;
}
int getSum(int a, int b) {
unsigned x = a, y = b;
while (y != 0) {
unsigned carry = (x & y) << 1;
x = x ^ y;
y = carry;
}
return (int)x;
}
public int getSum(int a, int b) {
long x = a & 0xFFFFFFFFL, y = b & 0xFFFFFFFFL;
while (y != 0) {
long carry = ((x & y) << 1) & 0xFFFFFFFFL;
x = (x ^ y) & 0xFFFFFFFFL;
y = carry;
}
return (int) x;
}
def get_sum(a, b):
MASK = 0xFFFFFFFF
x, y = a & MASK, b & MASK
while y != 0:
carry = ((x & y) << 1) & MASK
x = (x ^ y) & MASK
y = carry
return x if x <= 0x7FFFFFFF else ~(x ^ MASK)
function getSum(a: number, b: number): number {
let x = a >>> 0, y = b >>> 0;
while (y !== 0) {
const carry = ((x & y) << 1) >>> 0;
x = (x ^ y) >>> 0;
y = carry;
}
return x | 0;
}