Java基础——运算符

Java基础——运算符

算数运算符

  • 参与/运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法。
  • 整数被0除将产生异常,浮点数被0除将会得到无穷大或NaN结果。
  • 算数表达式中包含多个基本数据类型的值时,整个算数表达式的类型将会自动提升,
    等级顺序:byte,short,char–>int–>long–>float–>double
  • 字符的+操作是使用ASCII码值进行计算
  • 字符串的+操作表示字符串的连接符

自增自减运算符

  • 运算符在变量后,先使用再计算;运算符在变量前,先计算后使用;
  • Java 5.0以上版本,可以用于基本类型对应的包装器类;
  • 运算结果的类型与被运算的变量的类型相同。

关系运算符

  • 关系运算符的结果都是boolean类型。

逻辑运算符

  • 逻辑与 & 正正得正,其余为负
  • 逻辑或 | 负负得负,其余为正
  • 逻辑异或 ^ 不同为正,相同为负
  • 逻辑非 ! 取反
  • 短路与 && 若左边表达式为false则不会对右边的表达式判断
  • 短路或 || 若左边的表达式为true则不会对右边的表达式判断

三元运算符

  • expression1 ? expression2 : expression3
  • expression2 和 expression3 必须为有值表达式,return语句不是合法的有值表达式,故不能使用。

位运算符

  • 位运算符对操作数二进制的位进行运算。对每个二进制位(bit)进行计算,操作数和结果数均为整形。
  • 按位与 & 按位进行与运算(AND)
      00000000   00000101   &   00000000   00001100     00000000   00000100 \begin{array}{cl} \quad\ 00000000\ 00000101 \\ \ \&\ 00000000\ 00001100 \\ \hline \quad\ \, 00000000\ 00000100 \end{array}  00000000 00000101 & 00000000 00001100 00000000 00000100
  • 按位或 | 按位进行或运算(OR)
      00000000   00010101    ∣    00000000   00001100     00000000   00011101 \begin{array}{cl} \quad\ 00000000\ 00010101 \\ \ \ |\ \ 00000000\ 00001100 \\ \hline \quad\ \, 00000000\ 00011101 \end{array}  00000000 00010101    00000000 00001100 00000000 00011101
  • 按位异或 ^ 按位进行异或运算(XOR)
      00000000   00010101   ∧     00000000   00001100     00000000   00011101 \begin{array}{cl} \quad\ 00000000\ 00010101 \\ \ ^\land \ \,00000000\ 00001100 \\ \hline \quad\ \, 00000000\ 00011101 \end{array}  00000000 00010101  00000000 00001100 00000000 00011101
  • 按位反 ~ 按位进行取反运算(NOT)
      ∼     00000000   11001100     11111111   00110011 \begin{array}{cl} \ ^\sim \ \,00000000\ 11001100 \\ \hline \quad\ \, 11111111\ 00110011 \end{array}   00000000 11001100 11111111 00110011
  • 左移运算符<<:按二进制形式把所有的数字向左移动对应的位数,高位舍弃,低位补零;会改变符号位;对于int类型(32bit)左移位数大于32位操作时,会先求余后再进行左移操作,如a<<32,相当于不进行位移,a<<40,相当于左移8位;long类型(64bit)求余操作基数为64。
    num<<1 = num*2
  • 右移运算符>>:按二级制形式把所有的数字向右移动对应的位数,低位舍弃,高位补符号位;
    num>>1 = num/2
  • 无符号右移运算符>>>: 低位舍弃,高位补零;负数通过此运算符可以移位成正数;
  • byte、short位移前会转换为int类型(32bit)再进行位移。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值