• Java基础语法<一> 数据类型&运算符


    笔记整理 来源于《Java核心技术卷 I 》 《Java编程思想》

    1 数据类型

     

    1.1 整型

    类型 存储需求 取值范围
    int 4字节 -21 4748 3648 – 21 4748 3647 232
    short 2字节 -32768-32767 216
    long 8字节 -9223372036854775808 – 9223372036854775807 264
    byte 1字节 -128-127 28
     

    1.2 浮点类型

    类型 存储需求 取值范围
    float 4字节 大约±3.402 823 47E + 38F(有效位数6-7位)
    double 8字节 大约±1.797 693 134 862 315 70E + 308(有效位数15位)
     

    1.3 char类型

    char类型用于表示单个字符。
     

    1.4 boolean类型

    true false
     

    2 常量

    用final修饰
    多次使用 public static final
     

    3 运算符

    3.1 位运算符

    3.1.1 & 与运算

      相同位的两个数字都为1,则为1;若有一个不为1,则为0。
           00101&11100 = 00100
      判断奇偶性
           (n & 1) == 1;
     

    3.1.2 |或

      相同位只要一个为1即为1。
      00101 | 11100 = 11101

    3.1.3 ^异或  

           相同位不同则为1,相同则为0。
           00101 ^11100 = 11001
      应用:
      不用临时变量交换两个数(面试常考)
      a ^= b; 
      b ^= a; 
      a ^= b;
      a = 00101 b = 11100
      a = a^b = 00101 ^ 11100 = 11001
      b = b^a = 11100 ^ 11001 = 00101
      a = a^b = 11001 ^ 00101 = 11100
     

    3.1.4 ~非

               运算的定义是把内存中的0和1全部取反
     

    3.1.5 左移  <<

           a << b就表示把a转为二进制后左移b位(在后面添b个0)
           例如100的二进制为1100100,而110010000转成十进制是400,
    那么100 << 2 = 400。
           a << 1 表示乘以2
           a << m 表示a乘以2的m次方
           2的n次方 2 << (n-1)
     

    3.1.6 带符号右移 >>

           a >> b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。
           a >> 1 表示除以2
      a >> m 表示a除以2的m次方
      取绝对值:(n ^ (n >> 31)) - (n >> 31); 
      取两个数最大值:b & ((a-b) >> 31) | a & (~(a-b) >> 31); 
      取两个数最小值:a & ((a-b) >> 31) | b & (~(a-b) >> 31);  
      判断符号是否相同:(x ^ y) >= 0
      判断一个数是不是2的幂:n > 0 ? (n & (n - 1)) == 0 : false;  
      求两个整数的平均值:(x + y) >> 1;   

    3.1.7 无符号右移 >>>

           用0填充高位
     
    应用:
      计算n+1 :-~n  
      计算n-1:~-n  
      取相反数:~n + 1;  
      另一种写法: (n ^ -1) + 1;  
      if(x == a) x = b; if(x == b) x = a;
      x = a ^ b ^ x;  
      sign函数,参数为n,当n>0时候返回1,n<0时返回-1,n=0时返回return !!n - (((unsigned)n >> 31) << 1);   
     

    3.2 数学函数

      平方根 Math.sqrt(x)
      X的a次幂Math.pow(x,a)
      三角函数
        Math.sin
        Math.cos
        Math.tan
        Math.atan
        Math.atan2
      指数函数以及反函数
        Math.exp
        Math.log
        Math.log10
       表示π和e常量近似值
        Math.PI
        Math.E

    3.3 数值类型之间的转换

      
      6个实心箭头无信息丢失,3个虚箭头,表示可能有精度损失
     
     

    3.4 运算符级别

     
  • 相关阅读:
    IOS-Storyboard全解析-第一部分
    IOS-Socket
    IOS-XMPP
    IOS-源代码管理工具(Git)
    IOS-源代码管理工具(SVN)
    python环境配置
    【移动开发】Android中WIFI开发总结(二)
    【移动开发】Android中WIFI开发总结(一)
    Android 连接Wifi和创建Wifi热点 demo
    Android 判断用户2G/3G/4G移动数据网络
  • 原文地址:https://www.cnblogs.com/loveincode/p/7152824.html
Copyright © 2020-2023  润新知