首页 > 编程语言 > 详细

Java基础-Java运算符

时间:2020-12-17 23:10:08      阅读:36      评论:0      收藏:0      [点我收藏+]
  • 基本运算符

    • +:加,计算左右两个操作数的和

    • -:减,计算左右两个操作数的差

    • *:乘,计算左右两个数的积

    • /:除,计算左右两个数的商

      • 整数作为被除数
        • 除数是整数
          • 结果为整数,小数部分舍弃
          • 0不可以作为除数,会抛出异常
        • 除数是浮点数
          • 结果是浮点数
      • 浮点数作为被除数
        • 结果为浮点数
        • 0.0可以作为被除数,结果为Infinity
    • %:除余,计算左右两个数的余数

  • 赋值运算符

    • =:将右边操作数的值赋值给左边

    • +=:将左边的数与右边的数进行加法运算后赋值给左边,a += b相当于a = a + b

    • -=:将左边的数与右边的数进行减法运算后赋值给左边,a -= b相当于a = a - b

    • *=:将左边的数与右边的数进行乘法运算后赋值给左边,a *= b相当于a = a * b

    • /=:将左边的数与右边的数进行除法运算后赋值给左边,a /= b相当于a = a / b

    • %=:将左边的数与右边的数进行除余运算后赋值给左边,a %= b相当于a = a % b

  • 自增、自减

    • ++a:先自增之后运算

      • 在栈内存中先创建a+1的值,然后a指向新值,进行运算,原来的值在a出栈之前不会消失
    • a++:先运算再自增

      • 先进行运算,之后在栈内存中开辟新值
  • 关系和布尔运算符

    • ==:判断左右两边是否相等,对于基本数据类型,==判断值是否相等。对于引用数据类型,==判断地址是否相等。
    • !=:判断左右两边是否不等
    • <:判断左边是否小于右边
    • >:判断左边是否大于右边
    • <=:判断左边是否小于等于右边
    • >=:判断左边是否大于等于右边
    • ?:三目运算符
      • 用法:判断条件 ? true: false
  • 逻辑运算符

    • &&:逻辑与运算,左右两边均为true时,结果为true,否则结果为false
    • ||:逻辑或运算,左右两边有一边或全部为true时,结果为true,否则结果为false
    • !:逻辑非运算,反转操作数的逻辑状态
  • 位运算符

    • &:按位与,将两个操作数转换为补码,按位进行与运算,同为1结果为1,否则为0

      • 样例

        -8 & -2
        -8:
        原码:1000 1000
        反码:1111 0111
        补码:1111 1000
        
        -2
        原码:1000 0010
        补码:1111 1101
        反码:1111 1110
        
        -8 & -2 = 1111 1000 = -8
        
    • |:按位或,将两个操作数转换为补码,按位进行或运算,有一个为1或全为1则结果为1,否则为0

      • 样例

        -8 | -2
        -8:
        原码:1000 1000
        反码:1111 0111
        补码:1111 1000
        
        -2
        原码:1000 0010
        补码:1111 1101
        反码:1111 1110
        
        -8 | -2  = 11111110 = -2
        
        
    • ~:按位取反,将操作数转换为补码,按位进行取反,将0变成1,1变成0

      • 样例

        ~-8
        -8:
        原码:1000 1000
        反码:1111 0111
        补码:1111 1000
        
        ~-8 = 0000 0111 = 7
        
    • ^:按位异或,将操作数转换为补码,按位进行异或,相同为0,不同为1

      • 样例

        -8 ^ -2
        -8:
        原码:1000 1000
        反码:1111 0111
        补码:1111 1000
        
        -2
        原码:1000 0010
        补码:1111 1101
        反码:1111 1110
        
        -8 ^ -2  = 0000 0110 = 6
        
  • 移位运算

    • <<:左移运算,左移几位相当将这个数乘2的几次幂

      • 先将左边的操作数转换为补码

      • 将这个值整体向左移动右边的操作数位

      • 右边空出来的位用0填补,左边溢出的舍弃

      • 样例

        -16 << 2
        -16
        原码:1001 0000
        反码:1110 1111
        补码:1111 0000
        
        -16 << 2 = 1100 0000 = -64
        
    • >>:右移运算,右移几位相当于将这个数除以2的几次幂

      • 先将左边的操作数转换为补码

      • 将这个值整体向右移动右边的操作数位

      • 左边空出来的位用0或1填补(正数用0,负数用1),右边溢出的舍弃

      • 样例

        -8 >> 2
        -8:
        原码:1000 1000
        反码:1111 0111
        补码:1111 1000
        -8 >> 2 = 1111 1110 = -2
        
        8 >> 2
        8:0000 1000
        8 >> 2 = 0000 0010 = 2
        

Java基础-Java运算符

原文:https://www.cnblogs.com/ts00321001/p/14152415.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!