美文网首页
Java中的运算符

Java中的运算符

作者: NingSpeals | 来源:发表于2020-08-11 17:16 被阅读0次

    什么是运算符

    • 运算符对一个或者多个值进行运算,并得出一个运算结果。
    • 运算符的运算结果类型有的是固定的,有时候会根据被计算的值变化。比如两个int 相加,结果的类型就是int。两个byte 相加,返回值的类型也是int。
      混淆点:除赋值运算符外,运算符本身不会更改变量的值。

    比较运算符和布尔运算符

    比较运算符

    • >
    • >=
    • <
    • <=
    • !=
    • ==

    布尔运算

    • &
    • &&
    • |
    • ||

    运算符优先级

    • ()
    • *, /, %
    • +, -
    • >, >=, <,<=
    • ==
    • !=
    • &, &&, |, ||
    • =

    字面值的八进制和十六进制

    • 以0开头的整数为八进制

      • 05就是十进制的5
      • 011就是十进制的9
    • 以0x开头的整数位十六进制

      • 0xF就是十进制的15
      • 0x11就是十进制的17

    按位运算符

    • 按位运算符

      • 按位并(AND) :&
      • 按位或(OR) : |
      • 按位异或(XOR) : ^
      • 按位取反:~

    位移运算符

    • 位移运算符

      • >> : 符号位不动,其余位右移,符号位后边正数补0,负数补1。又称带符号右移
      • >>>: 符号位一起右移,左边补0,又称无符号右移
      • <<: 左移,右边补0。左移没有带符号位一说,因为符号位在最左侧

    位运算符不会改变原来变量的值

    • 按位运算符不会改变原本的变量的值

    • 位移运算符不会改变原本的变量的值

    位运算符用处

    按位运算符

    • 掩码(MASK)

    位移算符

    • 高效除以2

    数据类型自动转换

    • 自动类型转换

      • 不会出现问题的类型转换,编程语言可以做自动类型转换,比如低精度的数字向高精度的数字转换。
      • 自动类型转换可以发生在算数运算,也可以发生在赋值。
    • 数值精度顺序: double>float>long>int> short>byte

    • char 可以转换为int

      • 虽然同样是两个brte,但是因为char是无符号数,值域超出了short 可以表示的范围,所以不可以自动转为short.

    强制数据类型转换

    • 强制类型转换

      • 可能出现问题的类型转换,需要使用强制类型转换,比如高精度数值向低精度数值转换。
      • 强制类型转换也是操作符
      • 语法是用小括号括起来的目标类型放在被转换的值前面
      • 强制转换会造成数据精度丢失
    • 数值溢出

      • 数值计算一旦溢出。结果将失去其原有意义。比如,两个正数会加出负数。
      • 要对能够处理的值有大概的估计。

    从数值计算溢出理解程序员和编程语言责任的分界线

    • 编程语言的作用

      • 编程语言负责按照语法执行
      • 编程语言负责和计算机交互
    • 程序员的任务

    相关文章

      网友评论

          本文标题:Java中的运算符

          本文链接:https://www.haomeiwen.com/subject/iyjydktx.html