1.进制(二进制 八进制 十六进制)
二进制:(只有0和1)
权:0 1 2 3
基数:2
底数:2^0 2^1 基数^(位数-1)
十进制 <-----> 二进制转化
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
57 111001 (除法,逆序排)
67 1000011
129=128+1 10000001
96=64+32 1100000
79=64+15= 1001111
58 111010
1010 1010= 2^7+2^5+2^3+2^1=170
11 1011= 2^5+2^4+2^3+2+1=32+16+8+3=43+16=59
补码(32位二进制):第一位为符号位 其余位 取反+1
十进制 二进制
-1 11111111 11111111 11111111 11111111
-2 11111111 11111111 11111111 11111110
-3 11111111 11111111 11111111 11111101
-4 11111111 11111111 11111111 11111011
-6 11111111 11111111 11111111 11111010
-7 11111111 11111111 11111111 11111001
-8 11111111 11111111 11111111 11111000
-9 11111111 11111111 11111111 11110111
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
-56 = -(55+1)=1(32+16+4+2+1)=1(110111)=11111111 11111111 11111111 11001000
11111111 11111111 11111111 10101001 =-(0101 0111)= -(64+16+7)=-87
11111111 11111111 11111111 1101 1011 =-(00100101)= -(32+4+1)=-37
-79 = 1(64+15)= 1(100 1111) = 11111111 11111111 11111111 10110001
-39 =-(38+1) = 1(32+4+2+1) = 1(10 0111)=11111111 11111111 11111111 11011001
几位进制的取值范围:(-2^(位数-1),2^(位数-1)-1)
八位二进制:
最大值:01111111=2^7-1=127
最小值:10000000=-(2^7-1+1)=-128
十六位二进制:
最大值:0111111111111=2^15-1=32767
最小值:1000000000000=-(2^15-1+1)=-32768
32位二进制:
最大值:2^31-1
最小值:-2^31
八进制、十六进制
八进制:数字前面加0表示八进制
8=2^3 一位的八进制可以转换成3位二进制
0456(8)=100 100 110
10 111 011=273 后面数前面补0
十六进制:
16=2^4 一位十六进制可以转换成4位二进制
0 1 2 3 4 5 6 7 8 9 a b c d e f
0xef= 11101111
1 0101 1111 =0x15f
456 =1 0010 1110 =0x12e
=======================================================
数据类型:基本类型、引用类型
基本类型:8种
1.整型:byte short int long
byte:八位的二进制(-128,127)
short:十六位二进制(-32768,32767)
int:32位的二进制(-2^31,2^31-1)
整型字面量默认使用int类型
long:64位的二进制(-2^63,2^63-1)
要求:几种、几位、int默认
2.浮点型:flat double(科学计数法)
浮点型的字面量默认使用double类型
float:32位,其中第一位为符号位,接着8位为指数位,剩下的23位为尾数位
精确的位数是7到8位
double:64位,其中第一位为符号位,接着11位为指数位,剩下的52位为尾数位
精确位数为16-17位
要求:优先double、精确位数
3.布尔型:boolean
true false
布尔表达式
4.字符型:char
本质上是无符号的16位的二进制数(0,2^16-1 = 65535)
值是unicode值
基本数据类型的转换:
1.自动类型转换
byte short int long float double
char
本质:将小范围的值赋值给大范围的值;
注意:浮点型的精度问题
2.强制类型转换
本质:强制性的将大类型转换成小类型
二进制:(只有0和1)
权:0 1 2 3
基数:2
底数:2^0 2^1 基数^(位数-1)
十进制 <-----> 二进制转化
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
57 111001 (除法,逆序排)
67 1000011
129=128+1 10000001
96=64+32 1100000
79=64+15= 1001111
58 111010
1010 1010= 2^7+2^5+2^3+2^1=170
11 1011= 2^5+2^4+2^3+2+1=32+16+8+3=43+16=59
补码(32位二进制):第一位为符号位 其余位 取反+1
十进制 二进制
-1 11111111 11111111 11111111 11111111
-2 11111111 11111111 11111111 11111110
-3 11111111 11111111 11111111 11111101
-4 11111111 11111111 11111111 11111011
-6 11111111 11111111 11111111 11111010
-7 11111111 11111111 11111111 11111001
-8 11111111 11111111 11111111 11111000
-9 11111111 11111111 11111111 11110111
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
-56 = -(55+1)=1(32+16+4+2+1)=1(110111)=11111111 11111111 11111111 11001000
11111111 11111111 11111111 10101001 =-(0101 0111)= -(64+16+7)=-87
11111111 11111111 11111111 1101 1011 =-(00100101)= -(32+4+1)=-37
-79 = 1(64+15)= 1(100 1111) = 11111111 11111111 11111111 10110001
-39 =-(38+1) = 1(32+4+2+1) = 1(10 0111)=11111111 11111111 11111111 11011001
几位进制的取值范围:(-2^(位数-1),2^(位数-1)-1)
八位二进制:
最大值:01111111=2^7-1=127
最小值:10000000=-(2^7-1+1)=-128
十六位二进制:
最大值:0111111111111=2^15-1=32767
最小值:1000000000000=-(2^15-1+1)=-32768
32位二进制:
最大值:2^31-1
最小值:-2^31
八进制、十六进制
八进制:数字前面加0表示八进制
8=2^3 一位的八进制可以转换成3位二进制
0456(8)=100 100 110
10 111 011=273 后面数前面补0
十六进制:
16=2^4 一位十六进制可以转换成4位二进制
0 1 2 3 4 5 6 7 8 9 a b c d e f
0xef= 11101111
1 0101 1111 =0x15f
456 =1 0010 1110 =0x12e
=======================================================
数据类型:基本类型、引用类型
基本类型:8种
1.整型:byte short int long
byte:八位的二进制(-128,127)
short:十六位二进制(-32768,32767)
int:32位的二进制(-2^31,2^31-1)
整型字面量默认使用int类型
long:64位的二进制(-2^63,2^63-1)
要求:几种、几位、int默认
2.浮点型:flat double(科学计数法)
浮点型的字面量默认使用double类型
float:32位,其中第一位为符号位,接着8位为指数位,剩下的23位为尾数位
精确的位数是7到8位
double:64位,其中第一位为符号位,接着11位为指数位,剩下的52位为尾数位
精确位数为16-17位
要求:优先double、精确位数
3.布尔型:boolean
true false
布尔表达式
4.字符型:char
本质上是无符号的16位的二进制数(0,2^16-1 = 65535)
值是unicode值
基本数据类型的转换:
1.自动类型转换
byte short int long float double
char
本质:将小范围的值赋值给大范围的值;
注意:浮点型的精度问题
2.强制类型转换
本质:强制性的将大类型转换成小类型