一、数据类型
/**
* 项目名:数据类型
* 时间 :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);
}