第四天 ----运算符

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. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。由用户输入一个四位数字,然后计算出密文。

package demo1;

 

import java.util.Scanner;

 

public class Demo {

   public static void main(String[] args) {

      Scanner scanner=new Scanner(System.in);

      System.out.println("请输入一个四位数字:");

      int shu=scanner.nextInt();

      int qianwei=shu/1000%10;

      int baiwei=shu/100%10;

      int shiwei=shu/10%10;

      int gewei=shu%10;

      int ngewei=(gewei+5)%10;

      int nshiwei=(shiwei+5)%10;

      int nbaiwei=(baiwei+5)%10;

      int nqianwei=(qianwei+5)%10;

      int nshu=ngewei*1000+nshiwei*100+nbaiwei*10+nqianwei;

      System.out.println("密文为:"+nshu);

     

   }

  

 

}

  1.  
  2. 通过键盘输入张华的语文成绩,数学成绩。学校评选“三好学生”

要求:语文成绩至少 90 分,数学成绩至少 95 分。输出张华是否能评上“三好学生”。

package demo1;

 

 

public class Demo {

   public static void main(String[] args) {

      Scanner scanner=new Scanner(System.in);

      System.out.println("请输入张华的语文成绩:");

      int chinese=scanner.nextInt();

      System.out.println("请输入张华的数学成绩:");

      int math=scanner.nextInt();

      if(chinese>=95&&math>=95){

         System.out.println("张华是三好学生!");

      }

      else{

         System.out.println("张华不是三好学生!");

      }

     

     

     

   }

  

 

}

 

  1. 从键盘输入一个人的年龄和性别,判断这个人是否符合退休年龄。

(男退休年龄为 65 岁,女退休年龄为 60 岁)。并打印出这个人的信息。

 

package demo1;

 

import java.util.Scanner;

 

public class Demo2 {

   public static void main(String[] args) {

      Scanner scanner=new Scanner(System.in);

      System.out.println("请输入你的性别:");

  

      String  sex=scanner.next();

      System.out.println("请输入你的年龄:");

      int age=scanner.nextInt();

      if(sex.equals("")){

         if(age>=65){

            System.out.println("这位性别年龄为"+age+""+sex+"士已符合退休年龄");

         }else{

            System.out.println("这位性别年龄为"+age+""+sex+"士不符合退休年龄");

         }

        

      }

      else{

         if(age>=60){

            System.out.println("这位性别年龄为"+age+""+sex+"士已符合退休年龄");

         }else{

            System.out.println("这位性别年龄为"+age+""+sex+"士不符合退休年龄");

         }

      }

           

   }

 

}

 

 

 

 

4. 通过编写程序,ia = 100; ib = 50;求出 ia++ - --ia + ++ib - ib-- + ++ia

的值是多少。并把求出的值打印出来

package demo1;

 

 

public class Demo {

   public static void main(String[] args) {

      int ia=100;

      int ib=50;

      int  ic=ia++ - --ia + ++ib - ib-- + ++ia;

      System.out.println(ic);

}

}

 

5。请输入一个 5 位数,判断它是不是回文数。即 12321 是回文数,

个位与万位相同,十位与千位相同。

package demo1;

 

import java.util.Scanner;

 

public class Demo {

   public static void main(String[] args) {

   Scanner scanner=new Scanner(System.in);

   System .out.println("请输入一个五位数:");

     int shu=scanner.nextInt();

   int gewei=shu/10000%10;

   int shiwei=shu/1000%10;

   int baiwei=shu/100%10;

   int qianwei=shu/10%10;

   int wanwei=shu%10;

   if(gewei==wanwei&&shiwei==qianwei){

   System.out.println(shu+"是回文数");

  

   }

   else{

      System.out.println(shu+"不是回文数");

     

   }

   }

}

 

  1. -18>>>2
  2. -20>>>1
  3. -88>>2
  4. -56>>3
  5. -40>>2
  6. -13<<2
  7. -6<<4

package demo1;

 

import java.util.Scanner;

 

public class Demo {

   public static void main(String[] args) {

      System.out.println(-18>>>2);

      System.out.println(Integer.toBinaryString(-18>>>2));

      /*

       *   18:00010010

       *  取反:11101101

       *   +1:11101110

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

       * >>>2:00111011

       *  取反:11000100

       *  +1   11111111 11111111 11111111 11000101

       */

     

      System.out.println(-20>>>1);

      System.out.println(Integer.toBinaryString(-20>>>2));

      /*  20:00010100

       * 取反:11101011

       * +1 11101100

       *>>>1:01110110

       * 取反:10001001

       * +1  10001010

       *

       *

       */

     

      System.out.println(-88>>2);

      System.out.println(Integer.toBinaryString(-18>>2));

     

      System.out.println(-56>>3);

      System.out.println(Integer.toBinaryString(-56>>3));

     

      System.out.println(-40>>2);

      System.out.println(Integer.toBinaryString(-40>>2));

     

      System.out.println(-13<<2);

      System.out.println(Integer.toBinaryString(-13<<2));

     

      System.out.println(-6<<4);

      System.out.println(Integer.toBinaryString(-6<<4));

     

   }

}

 
        
    }

}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值