//基本类型的赋值操作, 超过范围会有检查异常
byte a = 127; // -128~127 有符号 占用 1个字节
byte b = -128;
char c = Character.MAX_VALUE; //最大值等于 \uFFFF=65535
char d = (1 << 2 * Byte.SIZE) - 1; //0~65535, 占用两个字节 无符号
short e = (1 << (2 * Byte.SIZE - 1)) - 1; // -32768~32767 两个字节 有符号 上边界
short f = -(1 << 2 * Byte.SIZE - 1);// 下边界
int g = 0x7FFFFFFF; //-2147483648~2147483647 四个字节 有符号 上边界
int h = Integer.MAX_VALUE; //上边界
int i = 0x80000000; //下边界
long j = 0x7FFFFFFFFFFFFFFFL;//-9223372036854775808~9223372036854775807 八个字节 有符号 上边界
long k = Long.MAX_VALUE;//上边界
long l = 0x8000000000000000L; //下边界
long m = Long.MIN_VALUE;//下边界
float n = 0x1.fffffeP+127f;// 3.4028235e+38f 4个字节 上边界 {@link https://en.wikipedia.org/wiki/IEEE_754}
float o = Float.MAX_VALUE;//
float p = 0x0.000002P-126f;//下边界 1.4e-45f
float q = Float.MIN_VALUE;//
double r = 0x1.fffffffffffffP+1023;//1.7976931348623157e+308 占用8个字节 有符号 上边界
double s = Double.MAX_VALUE;
double t = 0x1.0p-1022; //下边界
double u = Double.MIN_VALUE;
boolean v = true;
boolean w = false;
小数点的边界定义采用了 EEE Standard for Floating-Point Arithmetic (IEEE 754) 标准
https://en.wikipedia.org/wiki/IEEE_754
Name | Common name | Base | Significand bits[b] or digits | Decimal digits | Exponent bits | Decimal E max | Exponent bias[10] | E min | E max | Notes |
---|---|---|---|---|---|---|---|---|---|---|
binary16 | Half precision | 2 | 11 | 3.31 | 5 | 4.51 | 24−1 = 15 | −14 | +15 | not basic |
binary32 | Single precision | 2 | 24 | 7.22 | 8 | 38.23 | 27−1 = 127 | −126 | +127 | |
binary64 | Double precision | 2 | 53 | 15.95 | 11 | 307.95 | 210−1 = 1023 | −1022 | +1023 | |
binary128 | Quadruple precision | 2 | 113 | 34.02 | 15 | 4931.77 | 214−1 = 16383 | −16382 | +16383 | |
binary256 | Octuple precision | 2 | 237 | 71.34 | 19 | 78913.2 | 218−1 = 262143 | −262142 | +262143 | not basic |
decimal32 | 10 | 7 | 7 | 7.58 | 96 | 101 | −95 | +96 | not basic | |
decimal64 | 10 | 16 | 16 | 9.58 | 384 | 398 | −383 | +384 | ||
decimal128 | 10 | 34 | 34 | 13.58 | 6144 | 6176 | −6143 | +6144 |