从两个可能的数字(4或7)中获取一个数字并返回第二个数字的函数

Max*_*gal 3 c algorithm

我必须实现一个获取两个数字之一的函数:4或7.该函数必须返回第二个数字而不使用算术运算,例如:

如果函数得到4作为参数 - 它返回7,

如果函数得到7作为参数 - 它返回4.

我寻找除了显而易见的解决方案 return x==7?4:7

解决方案可能会解决这些数字的二进制表示属性.

Jua*_*pes 12

由于4是100二进制的而7是二进制的111,所以你只需要用3(11)对输入进行异或.

这样,100 xor 011 = 111111 xor 011 == 100.