JAVA基本数据类型之间的运算规则
自动类型提升
byte、char、short --> int --> long --> float --> double
1字节、2字节、2字节 --> 4字节 --> 8字节 --> 4字节 --> 8字节
-128~127、0-65535、-2^15~(2^15)-1 --> -2^31~(2^31)-1(约21亿) --> -2^63~(2^63)-1 --> -3.403E38~3.403E38 --> -1.798E308~1.798E308
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果会自动提升到容量大的数据类型
特别的:当byte、char、short三种类型的变量做运算时,结果为 int 型
强制类型转换
- 自动类型提升的逆运算
class CodeTest{
public static void main(String[] args){
double d1 = 12.3;
// 强转化为int
int i1 = (int)d1;
/*
编译成功
输出:12
*/
}
}
-
需要使用强转符 ()
-
强转类型可能会精度损失
特殊案例
class CodeTest{
public static void main(String[] args){
long d1 = 123123;
// 编译失败,整数过大
// long l1 = 12345678910111213141516;
long l1 = 12345678910111213141516L;
}
}
String字符串
- String属于引用数据类型
- 声明String类型变量时。需用双引号 ""
- String可以和8种基本数据类型变量做运算
- 字符串可以用 + 运算,但结果类型需为String
进制(选学)
-
整数表达方式
二进制: 0,1,满2进1。以0b或0B开头。
十进制:0-9,满10进1。
八进制:0-7,满8进1。以数字0开头表示。
十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
-
二进制转十进制
符号数0正1负 26 25 24 23 22 21 20 0(原码、反码、补码相同) 0 0 0 1 1 1 0 相加计算得到值14
符号位 步骤说明 -14的源码 1 0 0 0 1 1 1 0 除符号位外,各个位取反 -14的反码 1 1 1 1 0 0 0 1 反码+1(进一格) -14的补码 1 1 1 1 0 0 1 0 计算机底层都以补码的方式来存储数据
-
十进制转二进制
把整数除2取余数的逆
-
二进制转八进制/十六进制