• Java学习笔记(1)——基本数据类型


    一、进制转换
    10^n被称为权  10称为基数  
    计算机中正数和负数的关系是取反加一, 如: ~3+1=-3
    补码边界运算有溢出风险
    32位二进制补码最多表示2^32个数, -2G~2G
    1,计算机中的一个二进制数, 00001111,它的10进制为:
    0000 1111 = 15  正数直接转换
    2, 1111 1001,10进制数是多少
    1111 1001
    0000 0110  按位取反
    0000 0111  末尾加1
    7
    -7
    1111 1001 = -7;
    上面两个例子是从计算机中2进制转10进制,
    下面是从10进制转计算机中2进制
    1,正数取源码直接转
    2,负数按位取反末尾加1
    十六进制是2进制的简写,方便专业人员书写2进制数据
    -----------------------------------------------------------
    package pack01;


    public class HexBie {
    public static void main(String[] args){
    int i = 192;
    System.out.println(Integer.toBinaryString(i));
    System.out.println(Integer.toHexString(i));
    i = 0xf4;
    System.out.println(i);
    System.out.println(Integer.toHexString(i));
    System.out.println(Integer.toBinaryString(i));
    i = 072;
    System.out.println(i);
    }
    }
    ---------------
    11000000
    c0
    244
    f4
    11110100
    58
    -----------------------------------------------------------
    java中,int类型能表示的数据范围最大为2G-1,最小为-2G.
    i = 0x7fffffff;  //整数的最大值
    i = 0x80000000;  //整数的最小值
    二、数据类型
    1,基本数据类型(8个)
      byte(1) short(2) char(2) int(4) long(8) float(4) double(8) boolean
      整型: byte, short, int, long
      浮点型: float, double
      字符型: char
      Boolean型: boolean
    2,float: 1位为符号位(0,1),指数8位,尾数23位(精确度是23位)
      所以说int的精确度比float要大,但是int表示的范围小。
      float类型因为精度过低,所以一般很少使用,一般会使用double
    3,double:1位符号位,11位指数,52位尾数。
    ------------------------------------------------------
    package pack01;


    public class HexBie {
    public static void main(String[] args){
    int a = 0x7fffffff;
    int b = 0x7ffffff0;

    float fa = a;  //精度不够
    float fb = b;

    System.out.println(a);
    System.out.println(b);
    System.out.println(fa);
    System.out.println(fb);
    System.out.println(fa == a);
    System.out.println(fb == b);
    System.out.println(a == b);
    System.out.println(fa == fb);
    }
    }
    ------------------
    2147483647
    2147483632
    2.14748365E9
    2.14748365E9
    true
    true
    false
    true
    ------------------------------------------------------
    4,字符型char**
    字符类型是一个16位无符号整数,是一个2进制数,是一个unicode编码值。
    java char的范围0~65535不能表示全部unicode,但是可以表示unicode最
    常用部分,足够用了。
    1,什么是编码?
     用二进制数表示10进制数或字母
    unicode编码中英文部分与ASCII码兼容。
    ------------------------------------------------------
    package pack01;


    public class HexBie {
    public static void main(String[] args){
    char c;
    c = 97;
    System.out.println(c);
    System.out.println((int)c);
    }
    }
    --------------
    a
    97
    ------------------------------------------------------
    package pack01;


    public class HexBie {
    public static void main(String[] args){
    char c1,c2,c3;
    c1 = 97;
    c2 = ' ';
    c3 = 98;
    System.out.print(c1);
    System.out.print(c2);
    System.out.print(c3);
    }
    }
    ------------
    a
    b
    ------------------------------------------------------
    //并不是所有字符都可见,比如"u0000"一般作为c++字符串结束字符
    package pack01;


    public class HexBie {
    public static void main(String[] args){
    char c;
    c = 'u0000';
    System.out.println(c);
    }
    }


    ------------------------------------------------------
    各类数值型数据间的混合运算
    double <--- float
      ^
      |
    long
      ^
      |
    unsigned
      ^
      |
     int <---  char,short,byte
     横向表示必定转换,纵向表示当运算对象为不同类型是转换方向
  • 相关阅读:
    用JavaDoc生成项目文档
    thymeleaf参考手册
    转的一个Java基本功
    杂记
    修改Esxi克隆的CentOS的IP地址
    CentOS搭建socket5代理服务器
    CentOS上搭建Nginx + Mono 运行 asp.net
    启动PPT的时候一直配置vs2013的问题解决
    swift 元组
    swift 集合类型(二)
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470002.html
Copyright © 2020-2023  润新知