算术操作符:+ - / * %
{
1./:
3/5结果为0 6/5结果为1(整数除法)
6.0/5或6/5.0结果为1.200000(诺使用浮点型会警报 最好使用double)
2.%(两端必须为整数):
7%3结果为1(取余数)
}
移位操作符(不要出现移动负几位)
{
<<左移操作符 //把 _的二进制位向左移动一位
>>右移操作符{
1.算术右移
右边丢弃,左边补原符号
2.逻辑右移(通常采用)
右移丢弃,左边补0
}
int a=2; //a:的值为 00000000000000000000000000000010
int b=b-a<<1 //a<<1 00000000000000000000000000000100(1向左移动一位) a变成4
结果b为 4
int a=10; //a 00000000000000000000000000001010
int b=a>>1; //a 00000000000000000000000000000101变成5
int a=-1; //(整数的二进制表示形式有3种) (存放的是补码)
针对负数 1.原码 直接根据数值写出的二进制序列就是原 2.反码 原码符号位不变 其他位按位取反就是反码
3.补码 反码+1 就是补码
正整数 原码 反码 补码相同
)
a>>1; //原码 10000000000000000000000000000001
//反码 111111111111111111111111111111111110
//补码 111111111111111111111111111111111111
} a>>1; //a 补码01111111111111111111111111111111 逻辑右移
//a 补码11111111111111111111111111111111 算术右移
位操作符
{
按位与& 按位或| 按位异或^(操作数必须是整数)
1. 按位与 & int a=3;
int b=5;
int c=a&b; //按2进制位相与
//a 000000000000000000000000011
//b 000000000000000000000000101
//a&b 000000000000000000000000001 =1
c=1
2. 按位或 | int c=a|b;
//a0000000000000000000000000011
//b0000000000000000000000000101
//a|b 0000000000000000000000000111=7
c=4
3. 按位异或^(相同为0 相异为1
//a00000000000000000000000000011
//b00000000000000000000000000101
//a&b00000000000000000000000000110
//相同数字^结果为0
//0和某个数字^结果还是那个数字
}
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用,函数调用和数据结构