• Java基础三


    一、位运算符

      之前学习的运算符,都是基于变量的,或者常量的。

    实例1:

    class test1{

    public static void main(String [] args){

    //&    |    ^    ~

    //上面四种运算符都是基于位的。

    //& : 每一位都比较,有0则0,无0则1.

    // | : 每一位都比较,有1则1,无1则0.

    //^ :                        ,相同则0,不同则1.

    //~ : 每一位都取反。

      System.out.println(6&3);

      System.out.println(6|3);

      System.out.println(6^3);

      System.out.println(~6);

    }

    }

    /*

    ============================

        110

    &     011

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

        010

    ============================

        110

    |         011

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

         111

    ============================

        110

    ^     011

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

        101

    ============================

    ~6:

        int 四个字节

        00000000 00000000 00000000 00000110      6    的补码     计算机是以补码的形式进行计算

        11111111    11111111  11111111   111111001  ~6     的补码

    求源码 1000000 00000000 00000000 00000111       -7 

    */

    实例2:

    class Operator_Demo2{
    public static void main(String [] args){
    //两个数交换,不适用第三个变量
    int x=10;
    int y=5;
    /*
    int temp=0;
    temp=x;//temp=10
    x=y;//x=5
    y=temp;//y=10
    System.out.println(x+":"+y);
    */

    /*
    //如果把两个数的和求出来,放入其中之一,然后,利用和与一个数就能求另一个数。
    x=x+y;//x=15
    y=x-y;//y=15-5=10=原来的x
    x=x-y;//x=15-10=5=原来的y
    System.out.println(x+":"+y);
    */

    //^:异或运算有个特点,一个数据对另一个数据异或两次,该数据不变
    //System.out.println(5^10^10);
    //System.out.println(5^10^5);
    //0^0=0 0^0=0
    //1^0=1 1^0=1
    //0^1=1 1^1=0
    //1^1=0 0^1=1

    //难点:利用^,交换x与y。
    x=x^y; //x=10^5;
    y=x^y; //y=10^5^5=10;
    x=x^y; //x=10^5^10=5;
    System.out.println(x+":"+y);

    }
    }

    实例3:

    class test2{

    pubic static void main(String [] args){

    /*

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

    eg:0000 0001 -> 0000 0010

    >>:右移,最高位是0,左边补齐0;最高位是1,左边补齐1.

    >>>:无符号右移:无论最高位是0还是1,左边都补齐0.

    */

    System.out.println(12<<1);  //12*2的1次幂  24

    System.out.println(12<<2);  //12*2的2次幂  48

    /*
    00000000 00000000 00000000 00001100            12的补码
    (0)0000000 00000000 00000000 000011000         8+16=24
    (00)000000 00000000 00000000 0000110000      16+32=48
    */

    System.out.println(12>>1); // 12/2的1次幂   6
    System.out.println(12>>2); // 12/2的2次幂   3
    System.out.println(12>>3); // 1
    System.out.println(-2>>1); // -1
    /*
    00000000 00000000 00000000 00001100             12的补码
    000000000 00000000 00000000 0000110(0)         4+2=6
    0000000000 00000000 00000000 000011(00)        2+1=3
    00000000000 00000000 00000000 00001(100)     1=1

    10000000 00000000 00000000 00000010          原码  -2
    11111111 11111111 11111111 11111110                 补码   取反加一
    111111111 11111111 11111111 1111111(0)             结果的补码
    100000000 00000000 00000000 0000001          结果的原码=-1
    */

    //无符号右移
    System.out.println(-2>>>1);        //2147483647
    /*
    11111111 11111111 11111111 11111110 补码
    011111111 11111111 11111111 1111111(0) 结果的补码

    */
    //写程序计算2的8次方
    System.out.println(2*2*2*2*2*2*2*2);
    //普通程序员:循环*
    //高端程序员
    System.out.println(1<<8);

    }

    }

    二、程序的结构

    顺序结构、条件分之结构、循环结构

    实例1:

    //条件分支结构-if
    //if语句语法格式:
    /*
    if(比较表达式){
    语句体;
    }
    运行流程:
    先计算比较表达式的值,看返回值是true还是false
    如果是true,就执行语句体。
    如果是false,就不执行语句体。

    */ 

    class If_Demo1{
    public static void main(String [] args){
    int a=3;
    if(a<2){
    System.out.println("经过比较,a小于2");
    }
    System.out.println("程序执行完成");
    }
    }

    实例2:

    //1、比较表达式的值无论简单还是复杂,结果必须为boolean类型。
    //2、当if语句控制的语句体是一条语句,大括号可以省略
    //3、当if语句控制的语句体是多条语句,必须写大括号
    //4、***要求,无论语句体是一条还是多条,咱们统一加大括号!

    class If_Demo2{
    public static void main(String [] args){
    int age=17;
    if(age>=8&&age<18);    //这个语句是对的。
    System.out.println("用户属于防沉迷群体");      

    }
    }

  • 相关阅读:
    django quick start
    LiveWriter插入高亮代码插件介绍 基于SyntaxHighighter
    自动填充脚本使用及注意事项
    连接池错误
    Python3.3官方教程中文翻译1:开胃菜
    [译]科学计算可视化在andriod与ios实现的工具
    EXTGWT、GWT与EXTJS之间的关系
    Python3.3官方教程中文翻译2:使用Python解释器
    SAS9.1.3安装过程中反复出现重启动挂起的解决方案
    Sqlite 插入数据异常(乱码),看看是不是数据类型的错误
  • 原文地址:https://www.cnblogs.com/AlbertY/p/9293550.html
Copyright © 2020-2023  润新知