Tính hiệu 2 số không dùng toán tử số học

Viết một hàm Subtract() trả về hiệu của hai số nguyên. Hàm không được sử dụng bất kỳ toán tử số học nào (+, ++, -, --, .. vv). Tổng của hai bit có thể nhận được bằng cách thực hiện XOR (^) của hai bit. Tôi tính ((~x) & y) << 1 và cộng nó với x ^ y để có kết quả cần thiết.