一.算术运算符、-、*、/、%-*/分别对应加减乘除/ 除法:若左右两边都为整数则输出整数丢弃小数部分是直接丢弃小数部分不是四舍五入左右两边只要有一个小数则输出小数不要将0作为除数%求模求余数求负数的余数a%ba的正负决定了余数的正负c语言中求余数左右两边只能是整数二.赋值操作符和复合赋值复合赋值和其他符号结合 组成复合运算符e.g. i3;相当于ii3;三.单目操作符和--e.g. 后置k;相当于kk1;先使用后1前置k;相当于kk1;先1后使用--同理四.移位运算符位比特位1.左移e.g.1110000 1011变为0001 0110 结果得到22112变为0010 1100 结果得到44左边抛弃右边补0! 若移动过程中存在改变符号位的行为被称为“未定义行为”若为复数用补码左移得到数据转化为原码再得到十进制结果e.g.-1的补码为1111 1111 左移1得到1111 1110 减去1得到反码1111 1101最终原码为1000 0010即-11 结果得到-22.右移e.g.1110000 1011变为0000 0101 结果得到51120000 1011变为0000 0010结果得到2右边抛弃再最左边补符号位符号位如果是1补1如果是0补0e.g.-111111 1111 变为1111 1111 结果还是-1不管-1右移多少次结果都为-1五.位操作符1.按位与e.g.0000 01010000 1011 -----------------------0000 0001如果对应比特位上都是1结果就是1printf(%d\n,k1k2);2. | 按位或e.g.0000 01010000 1011 |-----------------------0000 1111只要对应比特位上有1结果就是1printf(%d\n,k1|k2);3. ^ 按位异或e.g.0000 01010000 1011 ^-----------------------0000 1110只要对应比特位不一样结果就是1printf(%d\n,k1^k2);n^n00^nn4.~ 按位取反e.g. 0000 0010 ~1111 1101把1变成0把0变成1 补码——反码——原码printf(%d\n,~2);六.关系运算符、、、、、!表示赋值表示判断C语言当中输出0为假输出非0为真七.逻辑运算符逻辑与逻辑或||逻辑非————在选择结构中讲解八.三目运算符表达式1表达式2表达式3三三个表达式/操作数如何表达式1为真则返回表达式2否则返回表达式3九.逗号表达式用逗号隔开的多个表达式从左向右依次执行整个表达式的结果是最后一个表达式的结果表达式变量和运算符一起构成了表达式》想用c语言与计算机对话一定要知道他是怎么构成的》如果要说有逻辑的话就得学习逻辑控制