【Java概念】数据类型(4)

一、数据类型

/**
* 项目名:数据类型
* 时间 :2017-9-9 下午12:58:06
*
* 【数据类型:byte、char、short、int、long、double、float】
*
* 【注意】:
* byte、short、int、long类型 他们的值分别是8位、16位、32位、64位有符号二进制补码整数。
* char类型 它的值是代表Unicode字符无符号整数。
* float类型 它的值是32位IEEE754浮点数;double类型 它的值是64位IEEE754浮点数。
* boolean类型具有真值true和false。
*
*/

byte类型与int类型转换

/**
* 【byte类型与int类型转换】
 */
@Test
public void intToByte(){
    byte b1 = 127;
    byte b2 = (byte) 128;//强制类型转换
    byte b3 = (byte) 200;
    byte b4 = (byte) -129;
    System.out.println("b1 = "+b1);
    System.out.println("b2 = "+b2);
    System.out.println("b3 = "+b3);
    System.out.println("b4 = "+b4);

    System.out.println("128字节码:"+Integer.toBinaryString(128));
    System.out.println("200 字节码:"+Integer.toBinaryString(200));
    System.out.println("-129 字节码:"+Integer.toBinaryString(-129));

    /*结果:
        b1 = 127
        b2 = -128
        b3 = -56
        b4 = 127
        128字节码:10000000
        200 字节码:11001000
        -129 字节码:1111111111111111 1111 1111 0111 1111
    【注意】:
    byte b2 = (byte) 128; 执行过程为:
    1:128的字节码为(0000 0000 1000 0000)-->
    2:截取掉字节码前八位,变为(1000 0000)-->
    3:将截取后的二进制字节码转换成十进制:变为(符号位为1,数值位为:000 0000)-->
    4:根据java存储的数据为反码,将负数的原码取反+1,得(1111 1111 + 1)-->
    5:最终变为:(1 1000 0000)=-128
    【注意】:
    byte b4 = (byte) -129; 执行过程为:
    1:-129的字节码为(1111 1111 0111 1111)-->
    2:截取掉字节码前八位,变为(0111 1111)-->
    3:将截取后的二进制字节码转换成十进制:变为(符号位为0,数值位为:111 1111)-->
    4:根据java存储的数据为反码,正数的反码为原码,得(111 1111)-->
    5:最终变为:(0111 1111)=127
     */
}
/**
 * 【short类型与int类型转换】:
 */
@Test
public void intToShort(){
    //short s1 = 1;
    //s1 = s1 + 1;  
    /*
    Character.java:7: 错误: 可能损失精度
               s1 = s1 + 1;
                       ^
      需要: short
      找到:    int
      【注意改进方式】:s1 = (short)(s2 + 1);
    */
    short s2 = 1;
    s2 = (short)(s2 + 1);
    System.out.println("(short)(s2 + 1) = "+ s2);

    s2 = (short) Integer.MAX_VALUE;
    System.out.println("(short) Integer.MAX_VALUE = "+s2);


}
/**
 * 【基本数据类型及其对应的包装类---byte】:
 */
@Test
public void byteDemo(){
    //byte---Byte
    byte byte_max = Byte.MAX_VALUE;
    byte byte_min = Byte.MIN_VALUE;
    int byte_size = Byte.SIZE;
    System.out.println("byte_size = "+byte_size);//8
    System.out.println("byte_max = "+byte_max);//127
    System.out.println("byte_min = "+byte_min);//-128
    System.out.println("-----------------------------");
}

/**
 * 【基本数据类型及其对应的包装类---short】:
 */
@Test
public void shortDemo(){
    //short
    short short_max = Short.MAX_VALUE;
    short short_min = Short.MIN_VALUE;
    int size = Short.SIZE;
    System.out.println("short_size = "+size);//16
    System.out.println("short_max = "+short_max);//32767
    System.out.println("short_min = "+short_min);//-32768
    System.out.println("-----------------------------");
}

/**
 * 【基本数据类型及其对应的包装类---char】:
 */
@Test
public void charDemo(){
    //char 
    System.out.println("char_MAX_VALUE = "+Character.MAX_VALUE);
    System.out.println("Character.MAX_CODE_POINT = "+Character.MAX_CODE_POINT);
    System.out.println("Character.MAX_RADIX = "+Character.MAX_RADIX);
    System.out.println("Character.MAX_HIGH_SURROGATE = "+Character.MAX_HIGH_SURROGATE);
    System.out.println("Character.MAX_LOW_SURROGATE = "+Character.MAX_LOW_SURROGATE);
    char c = 1;
    System.out.println("char默认值 = "+c);
    System.out.println("-----------------------------");
}

/**
 * 【基本数据类型及其对应的包装类---int】:
 */
@Test
public void intDemo(){
    //int
    Integer int_max = Integer.MAX_VALUE;
    Integer int_min = Integer.MIN_VALUE;
    int int_size = Integer.SIZE;
    System.out.println("int_size = "+int_size);//16
    System.out.println("int_max = "+int_max);//32767
    System.out.println("int_min = "+int_min);//-32768

    String str_bin = Integer.toBinaryString('c');
    System.out.println("str_bin = "+str_bin);
    String str_hex = Integer.toHexString('c');
    System.out.println("str_hex = "+str_hex);
    System.out.println("-----------------------------");

}

/**
 * 【基本数据类型及其对应的包装类---long】:
 */
@Test
public void longDemo(){
    //Long
    System.out.println("-----------------------------");

}

/**
 * 【基本数据类型及其对应的包装类---double】:
 */
@Test
public void doubleDemo(){
    //double
    Double double_max =  Double.MAX_VALUE;
    System.out.println("double_max = "+double_max);
    double a = 10/1.1;
    System.out.println("10/1.1 = "+a);

}

/**
 * 【浮点值上的操作符】:
 * 
 */
@Test
public void floatValueOperator(){
    int a = 20;
    a = (int) (20/2.4);
    System.out.println(a);

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值