一、给寄存器的某个位进行赋值
C语言基础知识(位操作)
运算符
含义
运算符
含义
&
按位与
~
按位取反
|
按位或
<<
左移
^
按位异或
>>
右移
我们定义一个32位的寄存器变量:unit32_t temp=0;
从左到右依次是第1位,第2位......第32位
我们现在给第5位赋值,也就是让第5位为1,从右往左依次是1,2,3......32位。
我们主要有以下四种方法:
第一种方法是按位与:也就是让第5位为0,其余为1,即temp = temp&0xFFFFFF7F
第二种方法是按位或:也就是让第五位为1,其余为0,即temp = temp|0x00000010
第三种方法是左移操作与:让第五位为1,也就是让1左移5位,再取反temp&=~(1<<5)
第四种方法是左移操作或:让第五位为1,也就是让1左移5位,temp|=1<<5。