假设输入是两个整数值.我想将两个整数值转换为二进制,执行二进制加法,并给出带有忽略的结果(等价整数).我该怎么做呢
想到的一个想法是以某种方式将它们转换为二进制字符串并使用算法进行二进制加法,然后忽略进位(如果进位存在则从字符串中删除进位字符).
样本输入
一个数字:1秒数:3
样本输出
2说明:和的最低位是1 + 1 = 0下一位是0 + 1 = 1(前一位的进位被丢弃)答案是二进制10,即2.
您可能正在寻找按位XOR(异或),它将为给定输入提供以下输出:
^ | 0 | 1
--+---+--
0 | 0 | 1
--+---+--
1 | 1 | 0
Run Code Online (Sandbox Code Playgroud)
它的行为类似于二进制加法(1+1 = 10),但如果两个操作数都是,则忽略溢出1.
int a = 5; // 101
int b = 6; // 110
a ^ b; // 3 or 011
Run Code Online (Sandbox Code Playgroud)