c语言:取整型变量x中的第p位开始的n个bit位,可以采用位运算的方法。先向左移位,丢弃前面不需要的位,再通过向后移位,丢弃后面不需要的位,最后再向左移位到原来的位置,就可以了。
1//num&(num-1)=(1111)&(1110)=(1110)
2//num&(num-1)=(1110)&(1101)=(1100)
3//num&(num-1)=(1100)&(1011)=(1000)
4//num&(num-1)=(1000)&(0111)=0 ,循环停止。共执行4次while循环。
扩展资料
一、指定的某一位数置1
宏 #define setbit(x,y) x|&#61;(1<
二、指定的某一位数置0
宏 #define clrbit(x,y) x&&#61;~(1<
三、指定的某一位数取反
宏 #define reversebit(x,y) x^&#61;(1<
四、获取的某一位的值
宏 #define getbit(x,y) ((x) >> (y)&1)