zoukankan      html  css  js  c++  java
  • 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
     横向表示必定转换,纵向表示当运算对象为不同类型是转换方向

  • 相关阅读:
    HDU 1162 Eddy's picture (最小生成树)(java版)
    codeforces 735D Taxes(数论)
    codeforces 735C Tennis Championship(贪心+递推)
    codeforces 2B The least round way(DP+数学)
    codeforces 2A Winner (好好学习英语)
    codeforces 632C The Smallest String Concatenation
    codeforces 803D Magazine Ad(二分+贪心)
    codeforces 803C Maximal GCD(GCD数学)
    codeforces 803B Distances to Zero
    STL容器之优先队列(转)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3238901.html
Copyright © 2011-2022 走看看