• Java第四课


    Java第四课

    一、运算符

    1. 算术运算符

      +,-,*,/,%(质数,奇偶),++,--(问题最大)

      ++ 一目运算符

          public static void main(String[] args) {
             int num = 1;
             // 在JVM中先取num的值,再对值进行运算
             // 在效果上相当于两个语句,第一个是直接打印num
             // 第二个是对num进行加1
             System.out.println(num++);
             System.out.println(num);
        }
          public static void main(String[] args) {
             int m = 1;
             int n = 1;
             int p = m++ + m + n++ + n;
             System.out.println(p);
             p = m++ + m++ + n++ + n++;
             System.out.println(p);
        }

      自增和自减的一个重要的现象:当符号在变量前时,JVM先看到的是要做的事,即加或减,然后找变量看是对哪个变量进行操作,结果是对变量操作完成

    2. 关系运算符

      == ,!=,>,<,>=,<=

    3. 位运算符

      首先要知道数字在计算机中的存储形式,转换为二进制,正数(原码,补码),负数以补码形式存在

      对于一个负数,进行位运算,首先把数字换成它的原码,然后再反码,再补码,对补码进行位运算,然后,把结果反码再原码,再十进制

      & | ^ ~

              int m = 1;
             int n = 1;
             // 0000 0001
             // 0000 0001
             // ---------
             // 0000 0001
             System.out.println(m&n);
             // & | ^ ~
             System.out.println(~m);
              byte b1 = -3;
             byte b2 = 3;
             // b1:1000 0011; 1111 1100 1111 1101
             // b2:                         0000 0011
             //                             0000 0001
             System.out.println(b1&b2);
             byte b3 = -3;
             System.out.println(b1 & b3);
      // 补码:1111 1101 | 1111 1100 | 原码1000 0011
             // b1:1000 0011 | 1111 1100 | 1111 1101
            // b2:1000 0100 | 1111 1011 | 1111 1100
            // ------------------------------------
            //                           1111 1101
           // 补码:1111 1101 | 反码:1111 1100 | 原码:1000 0011 十进制:-3
             byte b = 2 << 3;
             System.out.println(b);
             System.out.println(4 << 2);
             System.out.println(-4 << 3);
             // -4: 1000 0100 | 1111 1011 | 1111 1100.
             //1110 0000. | 1101 1111 | 1010 0000

      右移和左移相反,相当于对原数进行2的n次方的除法

      16 >> 2 = 16 / 4 ;

              System.out.println(16 >> 2);
             System.out.println(-16>> 2);
             System.out.println(-16>>3);

      无符号右移>>>

      对于正数的无符号右移和普通右移一样

              byte b = -8;
             // 把-8换成int型的补码
             // b: 1000 1000 | 1111 0111 | 1111 1000
             // 1111 1111 1111 1111 1111 1111 1111 1000
             // 0011 1111 1111 1111 1111 1111 1111 1110
             System.out.println(-8>>>2);



    软件下载提取码:qwer
  • 相关阅读:
    Java 传递参数时,传递一个变量快还是传递一个实体类?
    13 设计模式
    12 反射
    11.多线程&&并发
    10.输入输出
    9.异常Exception
    7.正则表达式
    5.数组
    6.常见对象
    上传本地项目到Github
  • 原文地址:https://www.cnblogs.com/ty0910/p/14429404.html
Copyright © 2020-2023  润新知