一个c++符号的用法问题

wuyan16001 2008-11-05 09:09:42
不用第三方变量交换两个数的程序如下:

int i = 10;
int j = 20;

i^=j;
j^=i;
i^=j;

cout<<i<<" "<<j<<endl;

i^=j; //这代表什么意思^
...全文
173 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
太乙 2008-11-06
  • 打赏
  • 举报
回复



i^=j;
j^=i;
i^=j;

抑或:

比如:

对于:i=2 j=10

i:00000000 00000000 00000000 00000010
j:00000000 00000000 00000000 00001010

那么
i^=j之后:

i:00000000 00000000 00000000 00001000
j:00000000 00000000 00000000 00001010

j^=i后:

i:00000000 00000000 00000000 00001000
j:00000000 00000000 00000000 00000010


i^=j后:

i:00000000 00000000 00000000 00001010
j:00000000 00000000 00000000 00000010





bfhtian 2008-11-06
  • 打赏
  • 举报
回复
up ls
xzhangyu 2008-11-05
  • 打赏
  • 举报
回复
按位异或!
这个题还有其他的实现方法:
i = i + j - (j = i)
zxianrong 2008-11-05
  • 打赏
  • 举报
回复
同意楼上。
stardust20 2008-11-05
  • 打赏
  • 举报
回复
^是C语言的位运算符,按位异或的意思.

a^b就是拿a和b的二进制形式,按位,相同得0,不同得1.

如:2^3==(10)^(11)==(01)==1
lann64 2008-11-05
  • 打赏
  • 举报
回复
按位异或
zengkun100 2008-11-05
  • 打赏
  • 举报
回复
异或
你该找本基础的书来看看,楼主。
qqwx_1986 2008-11-05
  • 打赏
  • 举报
回复
异或运算
把i和j化为2进制做异或运算

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧