zoukankan      html  css  js  c++  java
  • 3Java运算符

    算术运算符

     

     

     赋值运算符

     

     

     比较运算符

     

     逻辑运算符

     

     

     位运算符

    左移:<<

          例子: 3<<2 = 12  -> 3*2*2=12    m<<n = m * 2n

          System.out.println(4 << 4);//64

          System.out.println(2 << 30);//-2147483648 int的范围-2147483648~2147483648 ,2<<30已经超出范围

          System.out.println(-4 << 2);//-16

          System.out.println(4 << -2);//0

          System.out.println(-5 << -1);//-2147483648

     

    左移:左边最高位丢弃,右边补齐0

    右移:>>     a-p = 1 /ap

          例子:3>>1 = 1     -> 3/2=1    m>>n = m / 2n

     

    最高位是0,左边补齐0;

    最高位是1,左边补齐1

       System.out.println(100 >> 3);//12  100/8 = 12.5

       System.out.println(-100 >> 3);//-13   -100/8 = -13

    正数二进制->反码->加1(补码)->负数二进制

    负数二进制->减1->反码->正数二进制

    反码:1变成0,0变成1

    补码:加1

         //总结:右移的右边的数字阶乘不能超过左边的数字,否则1/大于1的结果都是0,而且正数右移就丢掉尾数,负数右移就四舍五入,后面这规律是十进制推算出来的,有点误差

    无符号右移:>>>,正数的>>>和>>一样效果

          例子:3>>>1 = 1    3/2=1

    符号是什么意思呢?

    符号指的是32位最左边的第一位代表符号,1位负数,0位正数

    0000 0000 0000 0000 0000 0000 0000 0000

    那么无符号右移是什么意思呢?

    就是忽略掉前面的符号是0还是1,直接补全0

    //总结:位运算的右边的数字不能为负数,而且位移的结果不能超过int范围,否则从最小范围重新算

     

    与运算:&    比较两个数的二进制

    例子:12 & 5= 4   1相当true, 0相当false

     

    或运算:|  比较两个数的二进制

     

    例子:6 | 3 = 7 

     

    异或运算:^  比较两个数的二进制,不一样就1,其他0

          例子:6 ^ 3 = 5

     

    反码: 1变0,0变1   注意反码符号是~波浪线

          例子:~6 = -7

     

    总结:左移没有符号,右移有符号区别,当32位第一个符号为0,就补全0,如果是1前面就补全1,位运算右边的数字不能为负数。

     

    三目/元运算符

    int i=20,j=99,k=129,l=1132;
    		//比较两个数的大小
    		System.out.println(i>j ? i:j); //三元运算符格式: 表达式 ? 条件1:条件2       表达式为true执行条件1,false执行条件2
    //		比较三个数的大小    三元运算符的嵌套:表达式 ? 三元运算符格式1 : 三元运算符格式2
    		System.out.println(i>j ? (i>k?i:k) : (j>k?j:k));
    //		比较四个数的大小
    

      

  • 相关阅读:
    “”开天眼“”,天地分割效果
    关于获得当前的index的方法
    echart(2),模拟数据导入篇
    腾讯windows系统服务器
    elsarticle模板 去掉Preprint submitted to
    elsarticle模板 去掉摘要前后的两条横线
    LeetCode 345. Reverse Vowels of a String
    path变量修改后无法保存
    LeetCode 13: Roman to Integer
    LeetCode 118. Pascal's Triangle
  • 原文地址:https://www.cnblogs.com/unlasting/p/12331676.html
Copyright © 2011-2022 走看看