java基础运算符



java基础语法

一.运算符

。算术运算符

。赋值运算符

。比较运算符

。逻辑运算符

。位运算符

。三目运算符

  1. 、算术运算符

           

     算术运算符

      +-*/都是比较简单的操作

      +的几种作用

          。加法

          。正数  

          。字符串连接符

      。除法的时候要注意一个问题:

          。整数相除,只能得到整数

          。要想得到小数,可以*1.0

      /%的区别

          。单独使用效果相同

          。参与运算时,在操作数的前后效果不同

  2. .关系运算符

          

    。注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false

    。注2:比较运算符“==”不能误写成“=

  3. 、逻辑运算符

           

    注意:

         逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6

    &”和“&&”的区别:

    &时,左边无论真假,右边都进行运算;

    &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

    |”和“||”的区别同理,双或时,左边为真,右边不参与运算。

    异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false

  4. 、位运算符

        

                              位运算符

运算符

          运算

           范例

         <<

左移

3<<2=12  -->3*2*2=12

         >>

右移

3>>1=1  -->3/2=1

        >>>

无符号右移

3>>>1=1  -->3/2=1

         &

与运算

6&3=2

         |

或运算

6|3=7

         ^

异或运算

6^3=5

         ~

反码

~6=-7

。注:**位运算是直接对二进制运算

<<低位补0,移除的高位丢掉

>>高位补符号位,移除的低位丢掉

例:因为正数的原码反码补码相同所以在此以一个负数为例(在计算机中用补码进行运算,完成后再转为相应的原码)

byte x = -32;

byte y = (byte)(x>>2);

System.out.println(y);

答:原码:1010 0000

    反码:1101 1111

    补码:1110 0000

右移2位:1111 1000

补码转原码(取反加1):1000 1000

结果:-8

在此说一个下原码补码之间的转换

正数原码补码反码相同

负数原码转补码:原码除符号位转反码再加一

负数补码转原码:反码除符号位取反再加一

>>>>>的区别:

都是右移,仅仅在与>>>高位补0,而>>高位补符号位。

&:任何二进制位和0进行&运算,结果是0;和1进行&运算,结果是1.

|:任何二进制位和0进行|运算,结果是原值;和1进行|运算,结果是1

^:任何相同二进制位进行^运算,结果是0;和1进行^运算,结果是1

简单记法:

&:00

|:11

^:相同则0,不同则1

~:按位取反  01 10

。位异或运算符的特点

一个数据被另一个数据位异或两次,该数本身不变

a=a^b;

b=a^b;

a=a^b;

        结果:ab交换;

              b=a(a^b)^b=a

              a=a(a^b)^b(a)=b

  1. 、三目运算符

        。格式:

    (关系表达式)?表达式1:表达式2

    如果条件为true,运算后的结果是表达式1

    如果条件为false,运算后的结果是表达式2

    。示例:

    判断两个数是否相等

    Int a=7,b=9,z

    Boolean z=(a==b)?true:false

     

  1. 键盘录入数据

        。键盘录入数据概述

    我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。

    。如何实现键盘录入数据呢?

    导包(位置放到class定义的上面)

    import java.util.Scanner;

    创建对象

    Scanner sc = new Scanner(System.in);

    接收数据

    int x = sc.nextInt();

    三.例子

        、使用三元运算符完成如下练习(数据来自于键盘录入)

    比较两个数是否相等

    获取两个数中最大值

    获取三个数中最大值

    代码:

    import java.util.Scanner;

    class  forth

    {

    public static void main(String[] args)

    {

    System.out.println("请输入第一个数");

    Scanner sa=new Scanner(System.in);

    int a=sa.nextInt();

            System.out.println("请输入第二个数");

    int b=sa.nextInt();

    boolean z=(a==b)?true:false;

    if(z)

    {

              System.out.println("相等");

    }

    else

              System.out.println("不相等");

     

    int c=(a>b)?a:b;

    System.out.println("两者中的最大值为"+c);

    System.out.println("请输入第三个数");

    int d=sa.nextInt();

    int m=(d>c)?d:c;

    System.out.println("三者中的最大值为"+m);

    }

    }

    结果:

     

     

     

     

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值