您的位置:首页 > 编程语言 > Java开发

java总结3:1.Java基础:20181213第一次课:1.数据类型和变量、进制的转换、2.运算符

2019-05-22 14:53 204 查看

1.数据类型和变量
  基本类型
        占用内存        取值范围
    byte      8bit/1字节    -128~127
    short    16bit/2字节    -32768~32767
    int    32bit/4字节    -21亿~21亿
    long    64bit/8字节    -922亿亿~922亿亿

    float    32bit/4字节    3.4E38  保留8位有效数字,最后一位不精确   
    double  64bit/8字节    1.7E308 保留16位有效数字,最后一位不精确

    char    16bit/2字节    0~65535 '\u0000'~'\uFFFF'
    boolean    1bit        true false

    'a' 'A' '中'
    保存字符的时候,实际上存储的是字符对应的Unicode编码(是一个0~65536之间的整数)
    半角字符的Unicode编码和ASCII码一致
aA
aA

    进制的转换
    十进制和二进制之间的转换
    59    111011

    二进制转十进制
    111011  59
    
    1    1    1    1    1    1    1    1
    128    64    32    16    8    4    2    1
    59=32+16+8+2+1  111011
    123=64+32+16+1  1110001

    ------------------------------------------
    十进制和八进制
    59    73

    八进制转十进制
    73    59
    --------------------------------------------
    八进制转二进制
    73      111011

    二进制转八进制
    111011    73

    十进制转十六进制
    59    3b

    十六进制转十进制
    3b     59
    FFFF  1111 1111 1111 1111


2.运算符

  a.算术运算符
    +  -  *  /  %
    /   整数相除只计算整除的商,会丢掉余数
            浮点数相除会保留相应的精度
            浮点数和整除相除,首先将整数自动转换成浮点数类型,再计算
    %   取余数
        不管是整数还是浮点数都是计算整除之后的余数

    ++ --
    a++ 和++a的区别
    a++是先执行取值操作,再++
        ++a是先++,再执行取值操作

  b.赋值运算符
    =

        +=   -=   *=   /=    %=
    a+=3 --> a=a+3 
    
    

  c.关系运算符 比较两个数值的大小,运算结果一定是一个布尔值
    ==
    !=
    >
    <
    >=
    <=


  d.逻辑运算符 对布尔值进行运算的
    ! 逻辑非  对一个布尔值进行运算  非真既假  非假既真

    & 逻辑与  对两个布尔值进行运算,都为真,就为真
    &&短路与  对两个布尔值进行运算,都为真,就为真
         逻辑与无论条件是否成立,都会计算完所有的表达式
             短路与计算到为假的表达式,就结束

    | 逻辑或  对两个布尔值进行运算,只要有一个为真,就为真
    || 短路或 对两个布尔值进行运算,只要有一个为真,就为真
          逻辑或无论条件是否成立,都计算完所有的表达式
        短路或计算到为真的表达式,就结束

  e.条件运算符 三目运算符  三元运算符
        ? :
        表达式1?表达式2:表达式3

        表达式1的结果一定是一个布尔值
        如果表达式1为真,就执行表达式2
                如果表达式1为假,就执行表达式3


        |a-b|
        if(a<b){
           c = b-a;
        }else{
           c=a-b;
        }


        int c = a<b?b-a:a-b;
    

  f.位运算符  按照二进制位进行运算的运算符
    
    & 按位与        按照位,都为1则为1,否则为0
            1&1=1 0&0=0  0&1=0
        3&5=1
        011
           &101
              ------
        001

      | 按位或   按照位,只要有一个1就为1
            1|1=1   0|0=0    0|1=1
        3|5=7
    
        011
           |101
              ------
        111


    ^ 按位异或  按照位,相同为0  不同为1

        3^5
        011
           ^101
              ------
        110

    << 左移    按位向左移动,在右边补0,超出该类型的位数,会先和类型的长度做取模运算,再位移

    >> 右移    按位向右移动,在左边补符号位[正数补0,负数补1]

    >>> 无符号右移 按位向右移动,无论正负数,都是在左边补0


  

    int 32    01101010 00101010 11010010 01011101
                  00000000 00000000 00000000 11111111
                ----------------------------------------
          00000000 00000000 00000000 01011101


      交换a和b的值
    


    01101010 00000000 00000000 00000000 
    00000000 00101010 00000000 00000000 
    00000000 00000000 11010010 00000000 
    00000000 00000000 00000000 01011101
    

    计算机中是采用二进制的补码形式表示数据
    正数的补码和原码相同
    负数的补码=对应正数的原码的反码+1

    3  00000011
    -3  00000011 --> 11111100  --> 11111101

 1+(-1)=0
        00000001
        11111111
               ------------
               100000000
    00000001 11111110 11111111

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐