社区
C语言
帖子详情
请教关于宏 #swap(x,y) (x)^=(y)^=(x)^=y
xuweixxxx
2001-02-27 06:31:00
各位大虾小弟请教c中下面低宏定义是如何实现两数交换的及"^"的应用!
#swap(x,y) (x)^=(y)^=(x)^=y
另请教c++的
a=1<<32;
cout<<"1<<32=:"<<a<<endl;
b=1;
a=b<<32 ;
cout<<"b<<32=:"<<a<<endl;
为什么运行结果不一样?
谢谢了!
...全文
155
2
打赏
收藏
请教关于宏 #swap(x,y) (x)^=(y)^=(x)^=y
各位大虾小弟请教c中下面低宏定义是如何实现两数交换的及"^"的应用! #swap(x,y) (x)^=(y)^=(x)^=y 另请教c++的 a=1<<32; cout<<"1<<32=:"<<a<<endl; b=1; a=b<<32 ; cout<<"b<<32=:"<<a<<endl; 为什么运行结果不一样? 谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
myan
2001-02-27
打赏
举报
回复
^是异或运算符。异或运算有一个特点:它是自己的逆运算。换言之,c = a ^ b,
则a = c ^ b. 凡是互为逆运算的的一对算子均可以执行以下的运算序列以交换两个
变量的值:(以+/-为例)
a = a + b;
b = a - b;
a = a - b;
既然异或运算对自身形成逆运算,则
a = a ^ b; b = a ^ b; a = a ^ b;
同样也能交换两者的值。上述宏不过是用比较晦涩的形式写出以上代码而已。
第二个问题与实现相关,没有讨论价值。
sundayboys
2001-02-27
打赏
举报
回复
1是常量,b是变量,<<意义就不一样了。
BZOJ 2820 YY的GCD (莫比乌斯反演)
给定N,M N, M,求1<=x<=N,1<=y<=M 1<=x<=N, 1<=y<=M且gcd(x,y) gcd(x, y)为质数的(x,y) (x, y)有多少对?kAc这种傻×必然不会了,于是向你来
请教
……多组输入 Input 第一行一个整数T 表述数据组数 接下来T行,...
BZOJ_P2820 YY的GCD(数论+莫比乌斯反演)
BZOJ传送门 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1227 Solved: 636 [Submit][Status][Discuss] ...给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了
【bzoj2820】【YY的gcd】【莫比乌斯反演】
给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来
请教
…… 多组输入 Input 第一行一个整数T 表述数据组数 接下来T行,每行两个正整数,表示N, M Output T行...
[洛谷P2257] YY的GCD (莫比乌斯反演)
=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来
请教
…… 多组输入 输入输出格式 输入格式: 第一行一个整数T 表述数据组数 接下来T行,每行两个正整数,表示N, M 输出格式: T行,每行一个...
Luogu2257 YY的GCD
YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 ...=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来
请教
…… 多组输入 输入输出格式 输入格式: 第一...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章