JAVA基础数据类型(包装类)和进制示例
整形:
byte(Byte) 范围 -128 ~ 127(-2^7 ~ 2^7 - 1)
占1个字节,八位。
byte a = 100
100000000 为 - 128 (在一个字节中特殊表示)
011111111 为 127
第一个字符为符号位:0代表正 1代表负
其他类型同理
short (Short)范围 - 32768(2^15)~ 32767(2^15 - 1)
占两个字节,16位
short a = 100
int(Integer) 范围 -2,147,483,648(2^31)~ 2,147,483,647(2^31 -1);
占四个字节,32位
int a = 100
long(Long) 范围 -9,223,372,036,854,775,808(2^63)~ 9,223,372,036,854,775,808(2^63 - 1);
八个字节,64位
long a =
100L
浮点小数
float(Float) 四个字节,32位
内存空间结构:符号位(1)指数符号位(1)指数位(7)精确小数位(23)
float a = 0.1f
double(Double) 八个字节,64位
内存空间结构:符号位(1)指数符号位(1)指数位(10)精确小数位(52)
double a = 0.1d
科学计数法:2.1E10 = 2.1 * 10^10
精度丢失原因:计算机内存由二进制组成,而小数无法确切的用二进制表示,只能精确表示
布尔值 boolean(Boolean) 一个 字节,八位
存储 true 与 false
0表示false 1表示true
字符串
char (Character) 可以储存任意字符,是16位的Unicode编码
字符集:\u0000 ~ \uffff
每一个基础类都有一个包装类,主要用于类型之间的转化
装箱与拆箱:
将基本数据类型变成包装类称为装箱
将包装类的类型变为基本数据类型称为拆箱
进制算法:(数字大小 * 进制)^位数 - 1
进制转化:数字%进制的倒向集合
例如:115二进制显示
115/2 = 57 余 1
57/2 = 28 余 1
28/2 = 14 余 0
14/2 = 7 余 0
7/2 = 3 余 1
3/2 = 1 余 1
1/2 = 0 余 1
115的二进制为 01110011
整数类型大转小溢出丢失原则:
f(x) = x + 2^n * t
(n代表空间位数)(t代表周期)
实列:int 128 转化 为byte
Byte一个字节8位
f(x) = 1 + 2^8 * 1 = 1 + 128 = 1
int 128转化位byte时为1