-1

假设输入是两个整数值。我想将两个整数值转换为二进制,执行二进制加法,并给出忽略进位的结果(等效整数)。我将如何去做这件事。

想到的一个想法是以某种方式将它们转换为二进制字符串并使用二进制加法算法,然后忽略进位(如果进位存在,则从字符串中删除进位字符)。

样本输入

一个数字:1 第二个数字:3

样本输出

2 解释:求和中的最低位是 1 + 1 = 0 下一位是 0 + 1 = 1(前一位的进位被丢弃)答案是二进制的 10,即 2。

4

2 回答 2

6

You are probably looking for the bitwise XOR (exclusive OR) which will provide the following outputs for the given inputs:

^ | 0 | 1
--+---+--
0 | 0 | 1
--+---+--
1 | 1 | 0 

It behaves like binary addition ( 1+1 = 10) but ignores the overflow if both operands are 1.

int a = 5; // 101
int b = 6; // 110 

a ^ b; // 3 or 011
于 2013-01-05T16:58:22.597 回答
2

这只是XOR二进制中的两个整数之一。在Java中你可以做

result = v1 ^ v2;
于 2013-01-05T16:57:19.933 回答