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

    xiaoxiao2022-07-03  118

    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

     

    最新回复(0)