C语言位操作
由于在做一个航天的项目,需要用到C语言各种位操作,故集合起来,以后找起来就不用这么麻烦。
位操作介绍
| 符号 | 描述 | 运算规则 |
|---|---|---|
| & | 与 | 两个位都为1时,结果才为1 |
| 或 | 两个位都为0时,结果才为0 | |
| ^ | 异或 | 两个位相同为0,相异为1 |
| ~ | 取反 | 0变1,1变0 |
| << | 左移 | 各二进位全部左移若干位,高位丢弃,低位补0 |
| >> | 右移 | 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移) |
最方便 使用宏定义
一、指定的某一位数置1
#define setbit(x,y) x|=(1<<y)
二、指定的某一位数置0
#define clrbit(x,y) x&=~(1<<y)
三、指定的某一位数取反
#define reversebit(x,y) x^=(1<<y)
四、获取的某一位的值
#define getbit(x,y) ((x) >> (y)&1)
1854

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



