1.位操作符
& - 按(2进制)位与
| - 按(2进制)位或
^ - 按(2进制)位异或
只适用于整型
例:实现交换两个变量的值,要求不能新建变量
//3^3 = 0 -> a^a = 0
//011
//011
//000
//0^5 = 5 -> 0^a = a
//000
//101
//101
//3^3^5 = 5
//3^5^3 = 5
//异或支持交换律
//011
//101
//110
//011
//101
a = a ^ b;//3^5
b = a ^ b;//3^5^5 --> b = 3
a = a ^ b;//3^5^3 --> a = 5
练习:编写代码实现,求一个整数存储在内存中的二进制中1的个数
2.赋值操作符
int main()
{
int a = 3;//初始化
a = 90;//赋值
return 0;
}
符合赋值符
+=
-+
*=
/=
%=
>>=
<<=
&=
|=
^=
int main()
{
int a = 3;
a = a + 5;
a += 5;
a = a >> 1;
a >>= 1;
return 0;
}
3.单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作符数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
a+b 双目操作符 +操作符由2两个操作数
单目操作符
只有一个操作数
在C语言中 0表示假 非0表示真