算数操作符
+ — * /
1/2等于0 1.0/2等于0.5 1/2.0为0.5 1.0/2.0为0.5
取模操作符两端必须是整数
移位操作符(移动的是二进制位),只支持整数移位(<< >>)
左移操作符,左边丢弃,右边补0
补码形式存储
00000000000000000000000000000111---->00000000000000000000000000001110
当a=-7时
-7的存储的反码11111111111111111111111111111001
左移一位后补码为11111111111111111111111111110010,需要将补码换成原码来查看输出形式。
换成反码是11111111111111111111111111110001,换成原码是10000000000000000000000000001110
右移操作符
算数右移和逻辑右移取决于编译器(VS2019采用算数右移)
-7的存储的反码11111111111111111111111111111001
右移为(采用算数右移)11111111111111111111111111111100
上面补码变反码为1111111111111111111111111111011
变原码为10000000000000000000000000000100
逻辑操作符
// &-按位(二进制位)与
// |-按位(二进制位)或
// ^-按位(二进制位)异或
&-按位(二进制位)与
|-按位(二进制位)或
^-按位(二进制位)异或
赋值操作符
=
复合操作符
+= >>= -= *= /= %= <<= &= |= ^=
单目操作符
~
|
将1(00000000000000000000000000000001)向左移动一位,变成(00000000000000000000000000000010)与a或后得到(00000000000000000000000000001111)
&
++(前置和后置)
前置++
后置++
--
前置
后置
*(间接引用操作符)
p是a的存放地址,*p是a是值。
()强制类型转换
数组返回类型为指针(只跟电脑位数有关4/8)
关系操作符
逻辑操作符
&& ||(逻辑与、逻辑或)
条件操作符(三目操作符)
表达式?表达式:表达式
逗号表达式