永发信息网

询问关于c++中^的含义

答案:4  悬赏:50  手机版
解决时间 2021-01-03 06:02
  • 提问者网友:疯孩纸
  • 2021-01-02 18:22
#include
#define sw(x,y) {x^=y;y^=x;x^=y;} //为什么用^能实现的数字互换位置的功能呢?
main()
{
int a=10,b=1;
sw(a,b);
cout<}
运行结果为1 10
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-01-02 19:47
^是异或运算,遵循同0异1的运算原则。
就本体分析,10换算成2进制为1010,1为0001
x^=y --> 1010^0001=1011(x)
y^=x --> 0001^1011=1010(y)
x^=y --> 1011^1010=0001(x)
所以最后的结果输出为1,10.
全部回答
  • 1楼网友:末日狂欢
  • 2021-01-02 23:18
^是一个位操作符,作用是按位异或 如果想 算 X的Y次方 请用 pow(X,Y);
  • 2楼网友:傲气稳了全场
  • 2021-01-02 22:25
^: bitwise exclusive OR operator 按位异或运算操作符 ^=: bitwise exclusive OR assignment operator 按位异或运算赋值操作符 x ^= y等价于x = x^y 简单考虑一位的情况(多位类推) 若y = 0,则x = x;若y = 1,则x = ~x。 建立真值表 x0,y0 x1,y1(x^=y) x2,y2(y^=x) x3,y3(x^=y) 0,0 0,0 0,0 0,0 0,1 1,1 1,0 1,0 1,0 1,0 1,1 0,1 1,1 0,1 0,1 1,1 显然x3 = y0,y3 = x0;即xy互换 其实,按照异或运算法则:a ^ b ^ a = b,就可推出上述结论。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯