第三天----------运算符

 

package javaday3;

public class Test {
    /**
     *5.java中的运算符:
     *         1.算术运算符:
     *              二元运算符(有两个操作数的运算符):+ - * / %
     *             注意:在进行除法运算的时候,如果要得到一个精确的值,则必须保证
     *                   除数或者被除数必须有一个是浮点型。
     *              一元运算符:++  -- 
     *             ++:自增1
     *                 a++      ++a
     *             --:自减1
     *                 a--      --a
     * 
     *             注意:1.++或者--出现在一个表达式中,如果在变量的前面则先自增或者自减然后参与运算,
     *                   否则先运算然后在自增或者自减。
     *                   2.一元运算符的优先级要高于二元运算付的优先级。
     *                   3.++和--操作数必须是一个变量。
     *         2.关系运算符:
     *             二元运算符:> < >= <= != ==
     *             所有关系运算符运算结果都属于boolean类型(true/false)
     *             注意:比较两个值是否相等要使用双等号(==)
     *         3.逻辑运算符:
     *             逻辑运算符主要有与或非组成
     *             逻辑与:&&:二元运算符:
     *                 两个操作数都是true的时候结果true;
     *                 只要有一个操作数是false,则结果就是false.
     *                 注意:为了提高程序效率,java中逻辑与运算符如果第一个操作数为false.
     *                        则不再进行运算第二个操作数。
     *             逻辑或:||:二元运算符
     *                 操作数只要有一个为true则结果为true
     *                 两个操作数否是false的时候结果为false.
     *                 注意:为了提高程序效率,java中逻辑或运算符如果第一个操作数为true.
     *                        则不再进行运算第二个操作数。
     *             逻辑非:!:一元运算符:
     *                 只有一个操作数,如果操作数为true则结果为false.
     *                     
     *             注意:一般情况下逻辑运算符的操作数都要求是boolean类型的
     *        4.位运算:为了方便对二进制位进行操作,java提供了4个位运算符。
     *            按位与:&
     *                8&12:
     *                00001000
     *                00001100
     *                ----------
     *                00001000
     *                规则:两个位上如果有一个0则结果为0
     *            按位或:|
     *                8&12:
     *                00001000
     *                00001100
     *                ----------
     *                00001100
     *                规则:两个位上如果有一个1则结果为1
     *                
     *            按位异或:^
     *                8^12
     *                00001000
     *                00001100
     *                ----------
     *                00000100
     *                规则:两个位上如果相同则为0,否则为1
     *            按位取反:~
     *                ~8
     *                规则:将每一位上的0变为1,1变为0
     *                
     *            注意:表示负数的二进制规则,将正数取反加一
     *     5.移位运算符:
     *            左移:<<
     *            4:    00000100
     *          <<3:    00100000
     *            4<<3=32
     *            1<<3=8
     *            m<<n==m*2的n次方
     *            
     *            规则:将原来的二进制数据朝左边推n个位,右边缺的位补0.
     *            注意:左移无关乎正负。
     *            右移:>>
     *                正数:
     *            32    00100000
     *            >>3    00000100
     *                32>>3====4
     *                m>>n==m/2的n次方
     *            规则:将原来的二进制数据朝右边推n个位,左边缺的位补0.
     *                负数:
     *            无符号右移:>>>    
     *
     *
     *
     */
    
    public static void main(String[] args) {
        
        int i=8;
        System.out.println(Integer.toBinaryString(-8));
        System.out.println(4<<3);
        
        
        //定义变量a
        int a=10;
        int b=3;
        //++a;//a=a+1
        
        int c=a-- + --b;
        System.out.println(a+"----"+b);
        System.out.println(++c);
        boolean boo=a<b;
        System.out.println(a==b);
        
        
        int x=3;
        int y=2;
        int z=4;
        /*boolean boo1=(x++ +y)>(--z +y);
        boolean boo2=(--x - ++y)<(z-- + y++);*/
    /*    System.out.println(boo1);
        System.out.println(boo2);*/
        System.out.println((--x - ++y)<y||(x++ +y)>(--z +y));
        System.out.println(x+"-----"+y+"-----"+z);
        System.out.println(!((--x - ++y)<y));
        
        //x=    y=    z=  
       
        
    }

}
 

 

作业:

请编写程序输出一下表达式的结果,并注明计算过程

  1. 24<<3
  2. 14<<4
  3. 9<<2
  4. -13<<2
  5. -6<<4
  6. 64>>4
  7. 12>>2
  8. 32>>2
  9. 88>>3
  10. -88>>2
  11. -56>>3
  12. -40>>2
  13. 28>>>2
  14. 90>>>4
  15. -18>>>2
  16. -20>>>1
  17. 4&7
  18. 9&8
  19. 76&25
  20. 23|32
  21. 19|18
  22. 43|12
  23. 7^9
  24. 11^19
  25. 13^20
  26. ~20
  27. ~33
  28. ~10

package demo;

 

 

public class demo {

   public static void main(String[] args){

     

      System.out.println("24<<3=="+(24<<3));

      System.out.println(Integer.toBinaryString(24<<3));

      //  24<<3==24*23次方

     

      System.out.println("14<<4=="+(14<<4));

      System.out.println(Integer.toBinaryString(14<<4));

      //14<<4== 14*24次方

     

      System.out.println("9<<2=="+(9<<2));

      System.out.println(Integer.toBinaryString(9<<2));

      //9<<2== 9*22次方

     

      System.out.println("64>>4=="+(64>>4));

      System.out.println(Integer.toBinaryString(64>>4));

      //64>>4==64/24次方

     

      System.out.println("12>>2=="+(12>>2));

      System.out.println(Integer.toBinaryString(12>>2));

      //12>>2==12/22次方

     

      System.out.println("32>>2=="+(32>>2));

      System.out.println(Integer.toBinaryString(32>>2));

      //32>>2==32/22次方

     

      System.out.println("88>>3=="+(88>>3));

      System.out.println(Integer.toBinaryString(88>>3));

      //88>>3==88/23次方

     

      System.out.println("28>>>2=="+(28>>>2));

      System.out.println(Integer.toBinaryString(28>>>2));

      //28>>>2==28/22次方

     

      System.out.println("90>>>4=="+(90>>>4));

      System.out.println(Integer.toBinaryString(90>>>4));

      //90>>>4==90/24次方

     

      System.out.println("4&7=="+(4&7));

      System.out.println(Integer.toBinaryString(4&7));

         /*

              4:0100

            7:0111

        ------------

             4:0100

      */

     

      System.out.println("9&7=="+(9&7));

      System.out.println(Integer.toBinaryString(9&7));

      /*   9:1001

       *   7:0111

       *   --------

       *   1:0001

       */

     

      System.out.println("76&25=="+(76&25));

      System.out.println(Integer.toBinaryString(76&25));

      /*    76:01001100

       *    25:00011001

       *    -----------

       *     8:00001000

       */

     

      System.out.println("23|32=="+(23|32));

      System.out.println(Integer.toBinaryString(23|32));

      /*    23:00010111

       *    32:00100000

       *    -----------

       *     0:00110111

       */

     

      System.out.println("19|18=="+(19|18));

      System.out.println(Integer.toBinaryString(19|18));

      /*

       * 19:00010011

       * 18:00010010

       * ------------

       * 19:00010011

       */

     

     

      System.out.println("43|12=="+(43|12));

      System.out.println(Integer.toBinaryString(43|12));

      /*

       * 43:00101011

       * 12:00001100

       * ------------

       * 47:00101111

       */

     

      System.out.println("7^9=="+(7^9));

      System.out.println(Integer.toBinaryString(7^9));

      /* 7:0111

       * 9:1001

       * --------

       * 14:1110

       */

     

      System.out.println("11^19=="+(11^19));

      System.out.println(Integer.toBinaryString(11^19));

      /*11:00001011

       *19:00010011

       * ---------------

       *24:00011000

       */

     

      System.out.println("13^20=="+(13^20));

      System.out.println(Integer.toBinaryString(13^20));

      /*13:00001101

       *20:00010100

       *-----------------

       *25:00011001

       *

       */

     

      System.out.println("~20=="+(~20));

      System.out.println(Integer.toBinaryString(~20));

      /* 20:00010100

       * -----------------

       *取反 :11101011

       * +1:11101111

       *

       *

       *

       */

      System.out.println("~33=="+(~33));

      System.out.println(Integer.toBinaryString(~33));

      /* 33:00100001

       * --------------

       *取反 :11011110

       * +1:

       *

       */

     

      System.out.println("~10=="+(~10));

      System.out.println(Integer.toBinaryString(~10));

      /*~10:1010

       * --------

       *   :0101

       *

       */

     

   }

        

  

  

  

  

 

}

 

 

2,请输入下列表达式的结果

int i=9;

int j=10;

boolean boo=++i<j&&i++>--j;

输出结果和i和j的值

package demo;

 

public class Demo2 {

public static void main(String[] args) {

  

 

   int i=9;

   int j=10;

   boolean boo=++i<j&&i++>--j;

   System.out.println(boo);

   System.out.println(i);

   System.out.println(j);

}

}

.

 

int i=3;

int j=5;

boolean boo=i--<j--||i++ >j++;

boolean boo1=!boo&&i--<j;

输出i,j,boo,boo1的值,并写出i和j的变化过程

 package demo;

 

public class Demo2 {

public static void main(String[] args) {

  

 

   int i=3;

   int j=5;

   boolean boo=i--<j--||i++>j++;

   boolean boo1=!boo&&i--<j;

   System.out.println(boo);

   System.out.println(boo1);

   //i==3-1;j=5-1=4

   System.out.println(i);

   System.out.println(j);

}

}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值