![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言位操作
qq_21095607
这个作者很懒,什么都没留下…
展开
-
C语言位操作
C语言位操作1 位操作运算符 1.1、与 (&)、或(|)、按位取反(~) 1.2、移位操作:左移(<<)、右移(>>) 2 位操作宏函数 2.1 bit n位置位,即bit n 置1其他位保持不变(从bit 0开始,如 0x01 bit 0为1)#define SET_NTH_BIT(x,n) (x | (1U << n))其中,1U 表示无符号整数1,左移n为得到bit n位为1,即掩码原创 2016-12-16 19:54:11 · 634 阅读 · 0 评论 -
实现两个整数交换的宏程序
#define SWAP(x,y) (x ^= y ^= x ^= y) 解释:x,y交换实际上只需要交换x,y对应二进制位不同的位 Step1、x=x ^y 获得掩码,所有不同的二进制位 Step2、Step1获得的掩码与y异或,x,y原来相同的位不变,不同的位取反,(0与其他数异或没有影响,1与其他数异或取反),这样操作之后y就是原来的x y ^= x ^= yStep3、此时的y便原创 2016-12-29 10:52:14 · 387 阅读 · 0 评论