逻辑运算符
简介
-
& :位于
A为false,也会判断B表达式 -
&& :短路与
A为false,不会判断B -
| :位或
A为true,也会判断B表达式 -
|| :短路或
A为true,不会判断B -
^ AB不同则为true 相当于 !=
-
!取反
位运算符
简介
-
3 & 5 输出1
用二进制表示 -
~19 输出 -20
19 二进制 00010011,求其补码为本身
非之后会为11101100
此时为补码,转为原码后10010100 -
位运算都是补码运算运算完后 首位为1,即需要求原码
-
5-3=5+(-3)
5的补码为本身(正数)( 00000101)
-3的补码为 11111101
相加为 00000010如果最开始为0则为正数,补码为本身 -
-5-3=-5+(-3)
-5的补码为( 11111011)
-3的补码为(11111101)
相加为 11111000
取其补码为10001000 -
总结 运算之前都先求补码,正数的话为本身,计算完后为补码,首位为1则需要求原码,首位为0即为结果
移位操作
简介
- 进行操作前先转补码
交换两个变量值练习
简介
-
使用算术运算
a为10,b为12
先求ab的差存储在a
然后用b-差得出a存在b,
然后用+差得出12
(重点是存储差值) -
位运算
任意一个值与另外一个值异或两次,值不变
a=a^b
b=a^b
a=a^b
存一个差值在a,然后通过异或交换了位置