这个问题不难,主要有两种方式实现。

1):用“加减”运算实现

            int a = 100;
            int b = 200;
            a = a + b;  //300
            b = a - b;  //100
            a = a - b;  //200

2):用“异或”运算实现

            int a = 1;
            int b = 10;
            a = a ^ b;  //0001 ^ 1010 = 1011 (11)
            b = a ^ b;  //1011 ^ 1010 = 0001 (1)
            a = a ^ b;  //1011 ^ 0001 = 1010 (10)

 

这里简单的介绍一下“异或”运算符:(这里用的便是第6条)

1. a ^ a = 0
2. a ^ b = b ^ a
3. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
4. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
5. a ^ b ^ a = b.
6.若x是二进制数0101,y是二进制数1011
则x^y=1110
只有在两个比较的位不同时其结果是1,否则结果为0
即“相同为0,不同为1”!
 
输入
运算符
输入
结果
1
^
0
1
1
^
1
0
0
^
0
0
0
^
1
1

 

有异或运算,那一定有“同或”运算:

1.“同或”是一个数学运算符。他应用于逻辑运算。 其运算法则为a同或b=ab+a‘b’(a'为非a)。
真“同或”假的结果是假,假“同或”真的结果也是假,真“同或”真的结果是真,假“同或”假的结果是真。就是说两个值相同,则同或结果为真。反之,为假。——简称同真,异假。即,同或:相同为一,不同为零。
2. 同或符号为⊙。(圆圈内为点)
3. 同或和异或互为非运算。
4. 同或公式:
a⊙b=ab+a'b'(a'为非a,b'为非b);
5. 同或表格(二进制
       
a
b
a⊙b
0
0
1
1
1
1
0
1
0
1
0
0

。。。。。

相关文章:

  • 2021-09-06
  • 2021-11-29
  • 2021-11-30
  • 2021-06-11
  • 2021-06-21
  • 2022-02-11
  • 2021-07-30
猜你喜欢
  • 2022-01-28
  • 2021-05-18
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
相关资源
相似解决方案