Bootstrap

C语言 操作符_位操作符、赋值操作符、单目操作符

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表示真

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;