int a=3,b=5,c=7;进行 与或非,一般用于寄存器配置
位运算:
&
0&0=0
0&1=0
1&0=0
1&1=1
结论:
1)任何数 &0 = 0
2)任何数 &1 = 任何数本身
|
0|0=0
0|1=1
1|0=1
1|1=1
结论:
1)任何数 |0 = 其本身
2)任何数 |1 = 1
最高位:符号位
正数:原码
负数:补码:取绝对值=》原码=》反码=》+1
~
~0=1
~1=0
^
0^0=0
0^1=1
1^0=1
1^1=0;
位移方式:
逻辑移位:改变符号位
算术移位:不改变符号为
<<
逻辑左移
>>
算术移位
@@@@@@@@@@@@
作业:
int a=123456
1)将 第10~12,改为1,其他位不变
2)将 13~15,改为0,其他位不变
赋值运算符:
= += -= *= /= ...
L opr=R => L= L opr(R)
eg:
#include<stdio.h>
int main(void)
{
int i=2,j=3,k=4;
printf("k*=i+j:%d\n",k*=i+j);
return 0;
}
逗号 ,
#include<stdio.h>
int main(void)
{
int i;
i=(1,2),3;
printf("i:%d\n",i);
return 0;
}