运算符

算数运算符

  +、-、*、/、%、+=、-=、*=、/=、%=

  如果 / 的所有对象都是整数,那么 / 的功能就是取整。例如:5 / 3 == 1

  如果 / 有一个运算对象是实型(浮点数),那么 / 的功能就是除法运算

 

   %(取余)运算符不能用于浮点数,例如5.0 % 2 会报错

  +=、-=、*=、/=、%=复合运算时,一定要将右边看成一个整体

关系运算符

  >、<、==、>=、<=、!=

逻辑运算符

  &&逻辑与(A&&B):A、B同为真,结果才为真,A、B中只要有一个假,结果则为假。

  注意逻辑与&&的短路特性

    如果A为假,整个表达式为假,那么B的真假决定不了整个表达式的结果,所以不会再判断B的真假,就叫“短路特性”

  ||逻辑或(A||B):A、B同为假,结果才为假,A、B中只要有一个真,结果则为真。

  注意逻辑或||的短路特性

    如果A为真,整个表达式为真,那么B的真假决定不了整个表达式的结果,所以不会再判断B的真假,就叫“短路特性”

  !逻辑非:!真==假       !假==真

    在C语言中,除了0为假,其它都为真

位运算符(二进制位运算)

  &按位与

    语法:全1为1,有0为0

    特点:和1相与保持不变,和0相与为0

    场景:将指定位清0

 

   |按位或

    语法:有1为1,全0为0

    特点:和1或置1,和0或保持不变

    场景:将指定位置1

 

   ~按位取反

    语法:0变1,1变0

    例如:~1100 0011 == 0011 1100

  ^按位异或

    语法:相同为0,不同为1

    特点:和1异或取反,和0异或保持不变

    场景:将指定位发生翻转

 

   <<左移(乘法)

    左边丢弃,右边补0。移动的位数不要超过自身的宽度  

 

  右移>>(除法)

    右边丢弃,左边补0或补1,只能补全1或者补全0(编译器决定)

 

    算术右移、逻辑右移都是编译器决定,用户无法确定

    无符号数:右边丢弃,左边补0

    有符号数:

      正数:右边丢弃,左边补0

      负数:右边丢弃,左边补0(逻辑右移)

      负数:右边丢弃,左边补1(算术右移)

 

     假设data为无符号数

 

     高级应用

 

三目运算符

  ?:------------>   表达式 ?值1:值2

  如果表达式为真,整个表达式的值为值1。如果表达式为假,则表达式的值为值2

 

 自增自减运算符

  ++、--

  如果是独立的一条语句,i++和++i,i--和--i没区别

  复合运算的时候,++、--在运算对象的右边,先赋值后加减。例如x = y++,先将y赋值给x,再进行y+1。如果在左边,则先加减,再赋值。例如:x = ++y,先将y+1,在将y+1的值赋给x

 

 

    

posted @   牙齿凤  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示