(1)x & (-x) // 结果为保留最右边为一的一位,其他的都为零
(2)x & (x-1) //将最右边为一的一位置零
(3)求2的N次方的余数,将被除数与((2^N)-1)即可;
(4)不用中间变量交换两个变量的值
//异或,是相同时为0,不同时为1,并且 A^1=!A , A^0=A所以,第二步相当于a^b^b=a;第三步相当于a^b^a=b,最终两个数交换了
void swap(int a,int b)
{
a=a^b;
b=b^a;
a=a^b;
}
//此法有个前提是交换的两个变量必须是可以进行代数运算的
void swap(int a,int b)
{
a=a+b;
b=a-b;
a=a-b;
}
编程技巧与算法优化:高效数据处理与交换方法
本文深入探讨编程中的高效数据处理与交换技巧,包括使用位操作实现无中间变量交换,以及快速求取2的N次方的余数方法。通过实例分析,展示如何利用异或运算实现数值交换,以及巧妙地利用数学性质简化计算过程。
1万+

被折叠的 条评论
为什么被折叠?



