哪位高手来帮小弟我看一下这一小段程序的作用
谁来帮我看一下这一小段程序的作用?
#define bit_swap(a,b,n,m) \
tt = ((a > > n) ^ b) & m; \
b ^= tt; a ^= (tt < < n)
------解决方案--------------------
你可以试验一下:
设a=00110011;
b=11001100;
n=3;
m=00000010;
则由tt=((a> > n)^b)&m计算出的tt为00000010;
b^=tt得出b=11001110;
a^=(tt < <n)得出a=00100011;
可见这段代码是将b的第m(2)位与a的第m+n(5)位交换了一下。
以上的分析用的例子太少,可能不正确,但这是一个分析问题的方法。
#define bit_swap(a,b,n,m) \
tt = ((a > > n) ^ b) & m; \
b ^= tt; a ^= (tt < < n)
------解决方案--------------------
你可以试验一下:
设a=00110011;
b=11001100;
n=3;
m=00000010;
则由tt=((a> > n)^b)&m计算出的tt为00000010;
b^=tt得出b=11001110;
a^=(tt < <n)得出a=00100011;
可见这段代码是将b的第m(2)位与a的第m+n(5)位交换了一下。
以上的分析用的例子太少,可能不正确,但这是一个分析问题的方法。